python - 将 JSON 转换为 CSV

标签 python json csv

在 python 中,我有一个由列表和字典组成的复杂对象层次结构。我想将其全部输出为 CSV 或其他某种数据库格式。非常感谢任何使用 Python 或 Javascript 的答案。

我知道一个 CSV 文件(或表格)只能代表我层次结构中的一个“级别”对象,因此该解决方案需要创建多个文件。

这是一个例子:

{
    "Person" : [{"name":"Greg","age":"35","car":["honda civic","ford focus"]},
                {"name":"Steve","age":"28", "car":["mazda 323", "toyota camry"]}]
}

会变成

Person.csv:
id,name,age
1,Greg,35
2,Steve,28

car.csv:
id,Person_id,value
1,1,honda civic
2,1,ford focus
3,2,mazda 323
4,2,toyota camry

基本上这里唯一有趣的事情是分配新的 id,以便可以关联表中的行。

干杯, 戴夫

最佳答案

尝试这样的事情。

json_dict = {
    "Person" : [{"name":"Greg","age":"35","car":["honda civic","ford focus"]},
                {"name":"Steve","age":"28", "car":["mazda 323", "toyota camry"]}]
}

for entity in json_dict:
    csv_file = open('%s.csv' % entity, 'wb')
    headers = a[entity][0].keys()
    csv_writer = csv.DictWriter(csv_file, headers)
    map(csv_writer.writerow, json_dict[entity])
    csv_file.close()

# 现在你有你的 json 到 csv 文件来格式化你可以使用 awk;

awk  -F , '{print NR ", " $2 ", " $3 }' Person.csv > person.csv

...

关于python - 将 JSON 转换为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976345/

相关文章:

python - 从 csv 文件中删除某些列与特定正则表达式匹配的行

Python Matplotlib slider 小部件未更新

python - 使用数组运算过滤 numpy

python - 在 Perl 中使用 Spacy 和 Inline::Python 对多 MB 的原始文本进行词形还原。为什么这么慢?

mysql - 有没有办法将 JSON 字段中的数组与 MySQL 中的 JSON_ARRAY 进行比较?

java - java中JSONObject内部的JSONobject

python - 在python中构造一个从大到小的整数列表

java - 将 jackson 中的一个字段从字符串更改为 json 对象

string - 需要格式良好的数据进行测试

mysql - 通过 MySQL Workbench 的 "Table Data Import Wizard"导入带有转义引号的 CSV 文件