首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ODS文件到JSON

ODS文件到JSON
EN

Stack Overflow用户
提问于 2012-02-20 05:55:07
回答 2查看 6.4K关注 0票数 8

我想将我的speadsheet数据转换为数组的JSON数组。

这个网站做到了:http://www.shancarter.com/data_converter/index.html和我研究了源代码。

但我想要的是一个宏/脚本/扩展或任何方式来编程它,以将我的.ods转换为JSON文件:

像这样:

代码语言:javascript
复制
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

至:

代码语言:javascript
复制
[
    ["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"]
]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-02 06:20:23

答案可能又晚了,但marcoconti83确实做到了这一点:读取ods文件并将其作为二维数组返回。

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

将数据放入数组中后,将其放入json文件中并不困难。示例代码如下:

代码语言:javascript
复制
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)
票数 5
EN

Stack Overflow用户

发布于 2014-07-24 00:52:14

这可能有点晚了,但对于那些正在寻找并希望这样做的人来说,最好将.ods文件保存为.csv,这几乎是所有电子表格程序都能做到的。然后使用类似下面的代码来转换它:

代码语言:javascript
复制
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查看器中查看它,然后就可以使用了!

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9353636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档