首页 > 解决方案 > 在Python中将非固定键json转换为csv文件

问题描述

我是 Python 新手,有一个 JSON 文件,我需要将其转换为 csv 文件。

JSON文件:

    {
     "id1":{
         "subid1":{"A":1,"B":2,"C":3},
         "subid2":{"A":5,"D":5,"F":7},
         "subid3":{"L":5,"Z":5,"P":7}
      },
     "id2":{
         "subid1":{"G":1,"O":9,"C":3},
         "subid2":{"A":5,"V":15,"F":0},
         "subid3":{"L":5,"H":2,"N":7}
      }
    }

初始键 - id1、id2 等对于每个 Json 对象都是唯一的,并且subid1, subid2 and subid3在所有 Json 对象中保持相同。然而,可以看出内部 json 对象发生了变化。不限于从A到Z,可以是AA、XXSC等。

所需的 CSV 格式:

primaryId, subId, letterID, number
id1, subid1, A, 1
id1, subid1, B, 2
id1, subid1, C, 3
id1, subid2, A, 5
.
.
id2, subid1, O, 9
id2, subid1, C, 3
.
.
id2, subid3, N, 7

你能帮我吗?

标签: pythonjsonpython-3.xpandascsv

解决方案


您可以使用一些嵌套循环遍历每个 dict。

def tocsv(json):
    for col1, data in json.items():
        for col2, data2 in data.items():
            for col3, col4 in data2.items():
                print(",".join([col1, col2, col3, str(col4)]))

推荐阅读