遍历 Python 和 return 值中的字典列表
Iterate through list of dictionaries in Python and return value
我有一个这种格式的词典列表:
user_input =[{
'user':'guest',
'record':
'{"message":"User Request","context":{"session_id":"YWOZe"},"level":100}'
},
{
'user':'guest',
'record':
'{"message":"User Inquiry","context":{"session_id":"YWOZf"},"level":100}'
},
]
我想要的是,我想在eval(user_input[0]['record'])和eval(user_input[1]['record']) 通过迭代两个字典,到目前为止我可以为一个字典做
def record_to_objects(data:dict):
new_dict = {}
for key, value in data.items():
if data[key] == data['record']:
new_dict['record'] = eval(data['record'])
r = data
del r['record']
return {**r, **new_dict}
但是对于列表中的两个词典,我使用“double for loop”只得到一个结果(作为最后一项),也许我没有以正确的方式返回。
预期输出:
output = [
{'user': 'guest',
'record': {'message': 'User Request',
'context': {'session_id': 'YWOZe'},
'level': 100}},
{'user': 'guest',
'record': {'message': 'User Inquiry',
'context': {'session_id': 'YWOZf'},
'level': 100}}
]
有人可以帮我吗?我想要一个字典列表,两者都应该用 eval 方法处理过。
看起来像 JSON。 You should not use eval()
for this。相反,使用 json.loads()
和 for
循环:
import json
for item in user_input:
item["record"] = json.loads(item["record"])
这输出:
[
{
'user': 'guest',
'record': {'message': 'User Request', 'context': {'session_id': 'YWOZe'}, 'level': 100}
},
{
'user': 'guest',
'record': {'message': 'User Inquiry', 'context': {'session_id': 'YWOZf'}, 'level': 100}
}
]
我有一个这种格式的词典列表:
user_input =[{
'user':'guest',
'record':
'{"message":"User Request","context":{"session_id":"YWOZe"},"level":100}'
},
{
'user':'guest',
'record':
'{"message":"User Inquiry","context":{"session_id":"YWOZf"},"level":100}'
},
]
我想要的是,我想在eval(user_input[0]['record'])和eval(user_input[1]['record']) 通过迭代两个字典,到目前为止我可以为一个字典做
def record_to_objects(data:dict):
new_dict = {}
for key, value in data.items():
if data[key] == data['record']:
new_dict['record'] = eval(data['record'])
r = data
del r['record']
return {**r, **new_dict}
但是对于列表中的两个词典,我使用“double for loop”只得到一个结果(作为最后一项),也许我没有以正确的方式返回。 预期输出:
output = [
{'user': 'guest',
'record': {'message': 'User Request',
'context': {'session_id': 'YWOZe'},
'level': 100}},
{'user': 'guest',
'record': {'message': 'User Inquiry',
'context': {'session_id': 'YWOZf'},
'level': 100}}
]
有人可以帮我吗?我想要一个字典列表,两者都应该用 eval 方法处理过。
看起来像 JSON。 You should not use eval()
for this。相反,使用 json.loads()
和 for
循环:
import json
for item in user_input:
item["record"] = json.loads(item["record"])
这输出:
[
{
'user': 'guest',
'record': {'message': 'User Request', 'context': {'session_id': 'YWOZe'}, 'level': 100}
},
{
'user': 'guest',
'record': {'message': 'User Inquiry', 'context': {'session_id': 'YWOZf'}, 'level': 100}
}
]