簡體   English   中英

遍歷 Python 中的字典列表並返回值

[英]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']) 中使用 eval,到目前為止我可以為一個字典做作為

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。 您不應為此使用eval() 相反,將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}
 }
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM