2012-02-19 5 views
8

데이터의 speadsheet를 배열의 JSON 배열로 변환하고 싶습니다.JSON에 ODS 파일

이 사이트 수행 : http://www.shancarter.com/data_converter/index.html 그리고 소스 코드를 살펴 보았습니다.

하지만 내가하고 싶은 것은 매크로/스크립트/확장 또는 JSON 파일로 내 .ODS 변환을 programm에 어떤 방법 :

처럼 :

NAME VALUE COLOR DATE 
Alan 12 blue Sep. 25, 2009 
Shan 13 "green blue" Sep. 27, 2009 
John 45 orange Sep. 29, 2009 
Minna 27 teal Sep. 30, 2009 

사람 :

[ 
    ["Alan",12,"blue","Sep. 25, 2009"], 
    ["Shan",13,"green\tblue","Sep. 27, 2009"], 
    ["John",45,"orange","Sep. 29, 2009"], 
    ["Minna",27,"teal","Sep. 30, 2009"] 
] 
+0

이 문제에 대해 문의 하시겠습니까? http://stackoverflow.com/questions/4745024/spreadsheet-to-python-dictionary-conversion –

+0

http://pypi.python.org/pypi/odfpy/0.9.4 또는 http : //pypi.python을 살펴보십시오. org/pypi/ezodf/0.2.1 –

+0

내 솔루션 : ODS에서 CSV로, 작은 파이썬 스크립트로 JSON에서 CSV로 – damio

답변

5

대답은 다시 늦을 수 있지만 marcoconti83은 정확하게 그것을 수행했습니다. ods 파일을 읽고이를 2 차원 배열로 반환합니다. 당신이 배열의 데이터를 일단

https://github.com/marcoconti83/read-ods-with-odfpy/blob/master/ODSReader.py

는 JSON 파일로 얻을 어렵지 않다. 다음은 코드 예입니다.

import json 
from odftoarray import ODSReader # renamed the file to odftoarray.py 

r = ODSReader("your_file.ods") 
arrays = r.getSheet("your_data_sheet_name") 
json.dumps(arrays) 
3

조금 늦을 수 있지만보고 싶어하는 사람들은 .ods 파일을 거의 모든 스프레드 시트 프로그램에서 수행 할 수있는 .csv 파일로 저장하는 것이 가장 좋습니다. 그런 다음 변환이 같은 것을 사용

import csv 
import sys 
import json, os 


def convert(csv_filename, fieldnames): 
    print ("Opening CSV file: ",csv_filename) 
    f=open(csv_filename, 'r') 
    csv_reader = csv.DictReader(f,fieldnames) 
    json_filename = csv_filename.split(".")[0]+".json" 

    print ("Saving JSON to file: ",json_filename) 
    jsonf = open(json_filename,'w') 
    data = json.dumps([r for r in csv_reader]) 
    jsonf.write(data) 
    f.close() 
    jsonf.close() 


csvfile = ('path/to/the/csv/file.csv') 
field_names = [ 
       "a", 
       "list", 
       "of", 
       "fieldnames" 
      ] 

convert(csvfile, field_names) 

그리고 팁을, CSV, 그래서 그냥 통과하고 원하는 형식으로 저장 있는지 확인하고 JSON으로 변환하기 위해이 스크립트를 실행 읽을 꽤 인간이다. JSONView과 같은 JSON 뷰어에서 확인해보세요. 그러면 좋을 것입니다.

+0

.ods를 .csv로 자동 변환하는 방법이 실종되어 답변으로 사용 가능합니다. .ods 파일의 수 (최대 100 개, 아마도 1000 개)가 더 많아지면 상당히 짜증나고 시간이 많이 걸릴 것입니다. –