2012-02-19 10 views
8

データのSpeadsheetを配列のJSON配列に変換したいと思います。ODSファイルからJSON

このサイトの操作:http://www.shancarter.com/data_converter/index.html ソースコードを調べました。

しかし、私が望むことは、マクロ/スクリプト/拡張またはJSONファイルに私の.odsファイルを変換するには、それをプログラムの開発する方法である:へ

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へ、CSVからPythonスクリプトを使用したJSONへ – 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

これはちょっと遅くなるかもしれませんが、探している人がこれをやりたければ、ほぼすべてのスプレッドシートプログラムが実行できる.csファイルとして.odsファイルを保存するのが最善でしょう。そして、それを変換するために、このようなものを使用します。

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)ですが、それ以上になると非常に刺激的で時間がかかるでしょう。 –

関連する問題