繁体   English   中英

需要将 JSON 值转换为键

[英]need to turn JSON values into keys

我有一些我想从这个转换的 json:

           [
            {
               "name":"field1",
               "intValue":"1"
            },
            {
               "name":"field2",
               "intValue":"2"
            },
            ...
            {
               "name":"fieldN",
               "intValue":"N"
            }
            ]

进入这个:

{ "field1" : "1",
  "field2" : "2",
  ...
  "fieldN" : "N",
}

对于每一对,我需要将name字段的值更改为一个键,并将intValue字段的值更改为一个值。 这似乎不像扁平化或非规范化。 是否有任何工具可以开箱即用地执行此操作,或者必须强制执行此操作? 完成此任务的最蟒蛇方式是什么?

使用字典理解

json_dct = {"parameters":
            [
                {
                    "name":"field1",
                    "intValue":"1"
                },
                {
                    "name":"field2",
                    "intValue":"2"
                },
                {
                    "name":"fieldN",
                    "intValue":"N"
                }
            ]}

dct = {d["name"]: d["intValue"] for d in json_dct["parameters"]}
print(dct)
# {'field1': '1', 'field2': '2', 'fieldN': 'N'}


parameters = [ # assuming this is loaded already
    {
        "name":"field1",
        "intValue":"1"
    },
    {
        "name":"field2",
        "intValue":"2"
    },
    {
        "name":"fieldN",
        "intValue":"N"
    }
]

 

field_int_map = dict()

for p in parameters:
    field_int_map[p['name']] = p['intValue']
    

产生{'field1': '1', 'field2': '2', 'fieldN': 'N'}

或作为听写理解

field_int_map = {p['name']:p['intValue'] for p in parameters}

这可以将name属性与intValue组合为键:值对,但结果是字典而不是原始输入类型,即列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM