ODS 文件转 JSON
Posted
技术标签:
【中文标题】ODS 文件转 JSON【英文标题】:ODS file to JSON 【发布时间】:2012-03-10 08:25:51 【问题描述】:我想将我的电子表格数据转换为 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"]
]
【问题讨论】:
您是在问这个吗? ***.com/questions/4745024/… 查看pypi.python.org/pypi/odfpy/0.9.4 或pypi.python.org/pypi/ezodf/0.2.1 我的解决方案:ODS to CSV 和 CSV to JSON with little python script 【参考方案1】:答案可能又晚了,但 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)
【讨论】:
【参考方案2】:这可能有点晚了,但对于那些前来寻找并想要这样做的人来说,最好将 .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 查看器中查看它,然后就可以开始了!
【讨论】:
缺少自动将 .ods 转换为 .csv 的方法,无法使其真正用作答案 - 这可能适用于少量 .ods 文件(最多 100 个,可能是 1000 个),但需要更多会很烦人而且很耗时。以上是关于ODS 文件转 JSON的主要内容,如果未能解决你的问题,请参考以下文章
使用 ActiveXObject (JavaScript) 读取 Excel 或 OpenOffice (.ods) 文件