我有一个嵌套的 json 数据文件。我正在尝试“get.some_object”并用这些对象编写一个 csv 文件(我认为它们被称为对象:“some_object”:“some_value”);我想要每组嵌套项目一行。这是我的代码:
import csv
import json
path = 'E:/Uni Arbeit/Prof Hayo/Sascha/Bill data/97/bills/hr/hr4242'
outputfile = open('TaxLaw1981.csv', 'w', newline='')
outputwriter = csv.writer(outputfile)
with open(path + "/" + "/data.json", "r") as f:
data = json.load(f)
for act in data['actions']:
a = act.get('acted_at')
b = act.get('text')
c = act.get('type')
outputwriter.writerow([a, b, c])
outputfile.close()
我遇到的问题是它只将最后一组数据写入csv;然而当我运行时
with open(path + "/" + "/data.json", "r") as f:
data = json.load(f)
for act in data['actions']:
a = act.get('acted_at')
b = act.get('text')
c = act.get('type')
print (a)
我所有的“a”值都打印出来了。
建议?
最佳答案
您需要刷新您的outputwriter 以将行写入文件,否则它将继续替换变量中的行并最终只写入最后一个值。 Writerow 仅在您关闭文件时起作用,除非您刷新数据。
for act in data['actions']:
a = act.get('acted_at')
b = act.get('text')
c = act.get('type')
outputwriter.writerow([a, b, c])
outputfile.flush()
关于python - 嵌套数据到 csv python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34897237/