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

时间:2019-07-23 12:17:44

标签: python python-3.x

我正在使用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" }                    
]

2 个答案:

答案 0 :(得分:2)

使用列表理解

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

输出

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

答案 1 :(得分:1)

您可以使用列表理解功能将字典转换为词典列表:

>>> 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 problem的情况吗?