繁体   English   中英

将JSON字符串转换为字典列表

[英]Convert JSON string to List of Dicts

我正在使用python 3.7我希望将JSON字符串键值显示为列表...

    print("rv  --->",  type(rv))   # <class 'ValueResult'> returned from database
    print("rv.value  --->", type(rv.value)) # <class 'dict'>
    # shows {'ACTION_CODE': 'S', 'ARRIVAL_DATE': '03-JUL-19', 'BIT_FLAGS': '1082131456'
    print(rv.value)
    print("rv.value.items() ---> ", type(rv.value.items())) #<class 'dict_items'>
    print(json.loads(json.dumps(rv.value))) # used this no help

我希望这将返回以下(词典)列表:

[
    {"ACTION_CODE": "S"},
    {"ARRIVAL_DATE": "03-JUL-19"} ,
    {"BIT_FLAGS": "1082131456" }                    
]

使用清单理解

a={'ACTION_CODE': 'S', 'ARRIVAL_DATE': '03-JUL-19', 'BIT_FLAGS': '1082131456'}
print([ {key:value} for key,value in a.items()])

OUTPUT

[{'ACTION_CODE': 'S'}, {'ARRIVAL_DATE': '03-JUL-19'}, {'BIT_FLAGS': '1082131456'}]

您可以使用列表推导将字典转换为词典列表:

>>> data = {'ACTION_CODE': 'S', 'ARRIVAL_DATE': '03-JUL-19', 'BIT_FLAGS': '1082131456'}
>>> output = [{k: v} for k, v in data.items()]
>>> print(output)
# [{'ACTION_CODE': 'S'}, {'ARRIVAL_DATE': '03-JUL-19'}, {'BIT_FLAGS': '1082131456'}]

但是,似乎不希望使用字典列表,而不是字典本身,这似乎很不寻常。 将您的数据转换为字典列表(大概)会使在代码中更难使用。 相反,您应该直接访问密钥:

>>> data['ACTION_CODE']
'S'

这可能是XY问题的情况吗?

暂无
暂无

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

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