【发布时间】:2020-11-27 00:32:40
【问题描述】:
我有一个嵌套字典列表,并且想找到包含某个值的字典,然后使用该字典查找字典中其他键的值。例如,我想在列表中搜索 MP_REFERENCE '123456',以便保存包含此字符串的 dict 并在其中查找其他值(例如 my_dict["OUTCOME_CODE"]["value"])
【问题讨论】:
标签: python list dictionary nested
我有一个嵌套字典列表,并且想找到包含某个值的字典,然后使用该字典查找字典中其他键的值。例如,我想在列表中搜索 MP_REFERENCE '123456',以便保存包含此字符串的 dict 并在其中查找其他值(例如 my_dict["OUTCOME_CODE"]["value"])
【问题讨论】:
标签: python list dictionary nested
这里有一些代码遍历“LIST”并将带有您要求的规范的dict保存到一个名为correct_dict的变量中。请注意,为简单起见,我已将“LIST”重命名为 lst。
lst = [
{
"RESPONSE_TYPE_CODE": {"value": "RNAGE"},
"OUTCOME_CODE": {"value": "ACCPT"},
"MP_REFERENCE": {"value": 338451},
"TRANSACTION_REFERENCE": {"value": "213527"},
"TRANSACTION_TYPE_CODE": {"value": "APPNT"},
"TRANSACTION_STATUS_CODE": {"value": "ACCPT"},
},
{
"RESPONSE_TYPE_CODE": {"value": "RNAGE"},
"OUTCOME_CODE": {"value": "ACCPT"},
"MP_REFERENCE": {"value": 519505},
"TRANSACTION_REFERENCE": {"value": "123456"},
"TRANSACTION_TYPE_CODE": {"value": "APPNT"},
"TRANSACTION_STATUS_CODE": {"value": "ACCPT"},
},
{
"RESPONSE_TYPE_CODE": {"value": "RNAGE"},
"OUTCOME_CODE": {"value": "REJCT"},
"MP_REFERENCE": {"value": 123456},
"TRANSACTION_REFERENCE": {"value": "475582"},
"TRANSACTION_TYPE_CODE": {"value": "DEAPP"},
"TRANSACTION_STATUS_CODE": {"value": "ACCPT"},
}]
correct_dict = {}
for dic in lst:
if dic["MP_REFERENCE"]["value"] == "123456":
correct_dict = dic
【讨论】:
In [64]: LIST = [
...: {
...: "RESPONSE_TYPE_CODE": {"value": "RNAGE"},
...: "OUTCOME_CODE": {"value": "ACCPT"},
...: "MP_REFERENCE": {"value": 338451},
...: "TRANSACTION_REFERENCE": {"value": "213527"},
...: "TRANSACTION_TYPE_CODE": {"value": "APPNT"},
...: "TRANSACTION_STATUS_CODE": {"value": "ACCPT"},
...: },
...: {
...: "RESPONSE_TYPE_CODE": {"value": "RNAGE"},
...: "OUTCOME_CODE": {"value": "ACCPT"},
...: "MP_REFERENCE": {"value": 519505},
...: "TRANSACTION_REFERENCE": {"value": "123456"},
...: "TRANSACTION_TYPE_CODE": {"value": "APPNT"},
...: "TRANSACTION_STATUS_CODE": {"value": "ACCPT"},
...: },
...: {
...: "RESPONSE_TYPE_CODE": {"value": "RNAGE"},
...: "OUTCOME_CODE": {"value": "REJCT"},
...: "MP_REFERENCE": {"value": 123456},
...: "TRANSACTION_REFERENCE": {"value": "475582"},
...: "TRANSACTION_TYPE_CODE": {"value": "DEAPP"},
...: "TRANSACTION_STATUS_CODE": {"value": "ACCPT"},
...: }
...: ]
In [63]: [d for d in LIST if d["MP_REFERENCE"]["value"] == 123456]
Out[63]:
[{'RESPONSE_TYPE_CODE': {'value': 'RNAGE'},
'OUTCOME_CODE': {'value': 'REJCT'},
'MP_REFERENCE': {'value': 123456},
'TRANSACTION_REFERENCE': {'value': '475582'},
'TRANSACTION_TYPE_CODE': {'value': 'DEAPP'},
'TRANSACTION_STATUS_CODE': {'value': 'ACCPT'}}]
【讨论】: