在 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/