[英]Convert nested JSON to CSV in Python
我正在嘗試將Python中的JSON數據轉換為CSV並在一段時間后在Stack Exchange上找到了此代碼(鏈接: 如何將JSON轉換為CSV? )
它在Python 3中不再起作用,給了我不同的錯誤。 有人知道如何修復Python 3嗎? 謝謝。
import csv
import json
x = """[
{
"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
}
}
]"""
x = json.loads(x)
f = csv.writer(open("test.csv", "wb+"))
# Write CSV Header, If you dont need that, remove this line
f.writerow(["pk", "model", "codename", "name", "content_type"])
for x in x:
f.writerow([x["pk"],
x["model"],
x["fields"]["codename"],
x["fields"]["name"],
x["fields"]["content_type"]])
您正在使用wb+
將文件打開為二進制文件,而您正在嘗試寫str
。
f = csv.writer(open("test.csv", "w+"))
也許這段代碼會以某種方式幫助您理解這一點。
import json,csv
data = []
with open('your_json_file_here.json') as file:
for line in file:
data.append(json.loads(line)) length = len(data)
with open('create_new_file.csv','w') as f:
writer = csv.writer(f)
writers = csv.DictWriter(f, fieldnames=['header1','header2'])
writers.writeheader()
for iter in range(length):
writer.writerow((data[iter]['specific_col_name1'],data[iter]['specific_col_name2'])) f.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.