我想将我的数据表格转换为数组的JSON数组。
此网站执行此操作:http://www.shancarter.com/data_converter/index.html 我查看了源代码。
但我想要的是一个宏/脚本/扩展或任何方式来编程将我的.ods转换为JSON文件:
喜欢:
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 :(得分:5)
答案可能会迟到,但marcoconti83完全做到了:读取一个ods文件并将它们作为二维数组返回。
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)
答案 1 :(得分:3)
这可能有点晚了但是对于那些想要这样做的人来说,最好将.ods文件保存为.csv几乎所有电子表格程序都能做到的.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查看器中查看它,然后你应该好好去!