10

我想将我的电子表格数据转换为 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"]
]
4

2 回答 2

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)
于 2014-09-01T22:20:23.100 回答
5

这可能有点晚了,但对于那些前来寻找并想要这样做的人来说,最好将 .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 查看器中查看它,然后您就可以开始使用了!

于 2014-07-23T16:52:14.327 回答