我有一个要转换为 CSV 文件的 JSON 文件。我怎样才能用 Python 做到这一点?
我试过了:
import json
import csv
f = open('data.json')
data = json.load(f)
f.close()
f = open('data.csv')
csv_file = csv.writer(f)
for item in data:
csv_file.writerow(item)
f.close()
但是,它没有用。我正在使用 Django,我收到的错误是:
`file' object has no attribute 'writerow'`
然后我尝试了以下方法:
import json
import csv
f = open('data.json')
data = json.load(f)
f.close()
f = open('data.csv')
csv_file = csv.writer(f)
for item in data:
f.writerow(item) # ← changed
f.close()
然后我得到错误:
`sequence expected`
示例 json 文件:
[{
"pk": 22,
"model": "auth.permission",
"fields": {
"codename": "add_logentry",
"name": "Can add log entry",
"content_type": 8
}
}, {
"pk": 23,
"model": "auth.permission",
"fields": {
"codename": "change_logentry",
"name": "Can change log entry",
"content_type": 8
}
}, {
"pk": 24,
"model": "auth.permission",
"fields": {
"codename": "delete_logentry",
"name": "Can delete log entry",
"content_type": 8
}
}, {
"pk": 4,
"model": "auth.permission",
"fields": {
"codename": "add_group",
"name": "Can add group",
"content_type": 2
}
}, {
"pk": 10,
"model": "auth.permission",
"fields": {
"codename": "add_message",
"name": "Can add message",
"content_type": 4
}
}
]
原文由 little_fish 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
pandas
库, 这就像使用两个命令一样简单!read_json 将 JSON 字符串转换为 pandas 对象(序列或数据框)。然后:
它可以返回字符串或直接写入 csv 文件。请参阅 to_csv 的文档。
基于之前答案的冗长,我们都应该感谢 pandas 提供的捷径。
对于非结构化 JSON,请参阅 此答案。
编辑:有人要求提供一个最小的工作示例: