如何使用python将列表中包含json的字典保存到csv中

2024-05-12 21:54:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下JSON:

"item": [
            {
                "id": "3",
                "num": 0,
                "name": "de",
                "leve": {
                    "label": [
                        "Ini",
                        "Sec",
                        "Coo"
                    ],
                    "effect": [
                        "{{ e5 }} -> {{ e5NL }}",
                        "{{ e1 }} -> {{ e1NL }}",
                        "{{ cooldown }} -> {{ cooldownnNL }}"
                    ]
                },
            },
            {
                "id": "4",
                "num": 0,
                "name": "de",
                "leveltip": {
                    "label": [
                        "Initial Damage",
                        "Secondary Damage",
                        "Cooldown"
                    ],
                    "effect": [
                        "{{ e5 }} -> {{ e5NL }}",
                        "{{ e1 }} -> {{ e1NL }}",
                        "{{ cooldown }} -> {{ cooldownnNL }}"
                    ]
                },
            },
            {
                "id": "5",
                "num": 0,
                "name": "de",
                "leveltip": {
                    "label": [
                        "Initial Damage",
                        "Secondary Damage",
                        "Cooldown"
                    ],
                    "effect": [
                        "{{ e5 }} -> {{ e5NL }}",
                        "{{ e1 }} -> {{ e1NL }}",
                        "{{ coo}} -> {{ cooNL }}"
                    ]
                },
            },
        ],

我想将此文件保存到csv文件中,该文件包含以下单独表格中的所有数据:

item_id item_name item_num item_level_label_inti item_level_effect_inti

 3        de        0       ini                   {{ e5 }} -> {{ e5NL }}
 4        de        0       ini                   {{ e5 }} -> {{ e5NL }}

与上面的列一样,它将所有数据都包含在一个列中


Tags: 文件nameiddeitemnumlabeleffect
2条回答

这里是实现,但是在您的输入中id 3有一个不同的键leve,设置为leveltip。所以我认为这是一个错误的条目。你知道吗

import csv
file_name = 'out.csv'
data = [(item['id'],item['name'],item['num'],item['leveltip']['label'][0],item['leveltip']['effect'][0]) for item in maindict['item']]
with open(file_name, "wb") as csv_file:
    writer = csv.writer(csv_file, delimiter=',')
    writer.writerow(["item_id","item_name","item_num","item_level_label_inti","item_level_effect_inti"])
        for line in data:
            writer.writerow(line)

工作

创建一个元组列表,以所需格式收集所有数据,然后使用csv包在csv file上写入。你知道吗

请看this post关于同一个问题

由于嵌套的json对象,在转换时会遇到问题,因此需要先将这些对象展平,然后将其转换为CSV

相关问题 更多 >