在Python中将嵌套JSON转换为CSV

在Python中将嵌套JSON转换为CSV,python,json,python-3.x,csv,Python,Json,Python 3.x,Csv,我正在尝试用Python将JSON数据转换为CSV,并在堆栈交换上找到了这段代码(链接:) 它在Python3中不再工作,这给了我不同的错误。有人知道如何修复Python3吗?谢谢 import csv import json x = """[ { "pk": 22, "model": "auth.permission", "fields": { "codename": "add_logentry",

我正在尝试用Python将JSON数据转换为CSV,并在堆栈交换上找到了这段代码(链接:)

它在Python3中不再工作,这给了我不同的错误。有人知道如何修复Python3吗?谢谢

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+"))

您正在使用
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()

也许这段代码会在某种程度上帮助您理解这一点

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()

错误是什么?错误是什么?