温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - How to store Json data in a Complex Python List
json parsing python

其他 - 如何将Json数据存储在复杂的Python列表中

发布于 2020-03-28 23:22:20

我有这个JSON:

{
    "OBJ": "ID",
    "UNQ": {
        "name": "ISD",
        "MANT": True
    },


    "features": [{
            "attributes": {
                "ID": 1,
                "PR": "X1",
                "CR": "Y1",
                "LU": 1,
                "CO": 15,
                "DE": None,
                "RE": 90
            }
        },
        {
            "attributes": {
                "ID": 2,
                "PR": "X2",
                "CR": "Y2",
                "LU": 2,
                "CO": 23,
                "DE": None,
                "RE": 4
            }
        },
        {
            "attributes": {
                "ID": 3,
                "PR": "X3",
                "CR": "Y3",
                "LU": 3,
                "CO": 56,
                "DE": None,
                "RE": 6
            }
        },
        {
            "attributes": {
                "ID": 4,
                "PR": "X4",
                "CR": "Y4",
                "LU": 4,
                "CO": None,
                "DE": 2,
                "RE": 2
            }
        },
        {
            "attributes": {
                "ID": 5,
                "PR": "X5",
                "CR": "Y5",
                "LU": 5,
                "CO": 34,
                "DE": None,
                "RE": None
            }
        },
        {
            "attributes": {
                "ID": 6,
                "PR": "X6",
                "CR": "Y6",
                "LU": 6,
                "CO": 5,
                "DE": None,
                "RE": 2
            }
        },
        {
            "attributes": {
                "ID": 7,
                "PR": "X7",
                "CR": "Y7",
                "LU": 7,
                "CO": None,
                "DE": None,
                "RE": 1
            }
        }
    ]
}

我想提取所有属性key:value并将每个attribute []的列表插入到主列表中

功能=>属性=> ID,PR,CR,LU,CO,DE,RE =>值

因此,对于每个属性[[ID,值],[PR,值],[CR,值],[LU,值],[CO,值],[DE,值],[RE,值] ]]

我试过了,但是没有用。

list= []
data = json.loads(string)
for attr in data["features"]:
    for key, val in attr["attributes"].items():
        list.append(key,value)

查看更多

查看更多

提问者
PythonAddicted
被浏览
70
Rakesh 2020-01-31 17:37

用:

result = []
for i in data['features']:   #iterate each features
    result.append([list(j) for j in i['attributes'].items()])  #Get attributes and use `dict.items()`

print(result)  

输出:

[[['ID', 1], ['PR', 'X1'], ['CR', 'Y1'], ['LU', 1], ['CO', 15], ['DE', None], ['RE', 90]], 
 [['ID', 2], ['PR', 'X2'], ['CR', 'Y2'], ['LU', 2], ['CO', 23], ['DE', None], ['RE', 4]], 
 [['ID', 3], ['PR', 'X3'], ['CR', 'Y3'], ['LU', 3], ['CO', 56], ['DE', None], ['RE', 6]], 
 [['ID', 4], ['PR', 'X4'], ['CR', 'Y4'], ['LU', 4], ['CO', None], ['DE', 2], ['RE', 2]], 
 [['ID', 5], ['PR', 'X5'], ['CR', 'Y5'], ['LU', 5], ['CO', 34], ['DE', None], ['RE', None]], 
 [['ID', 6], ['PR', 'X6'], ['CR', 'Y6'], ['LU', 6], ['CO', 5], ['DE', None], ['RE', 2]], 
 [['ID', 7], ['PR', 'X7'], ['CR', 'Y7'], ['LU', 7], ['CO', None], ['DE', None], ['RE', 1]]
]