另一个Python noob这里有一个问题。我有一个python嵌套字典,如下所示:(我将approved_apps列表分开,以便更容易阅读)
approved_apps= [
{'app_key_id':9991,'app_name':'Posts','app_path':'/posts'},
{'app_key_id':8881,'app_name':'Tasks','app_path':'/tasks'},
{'app_key_id':7771,'app_name':'Projects','app_path':'/projects'}]
user_profile = {
'user_info':
{'user_lname':'Doe','user_fname':'John','user_email':'johndoe@gmail.com'},
'user_privileges':approved_apps}
我想从user_profile字典中提取app_key_id,这样我就可以得到一个如下所示的列表:
desired_result = [9991,8881,7771]
我尝试了dict.items()并列出了理解但无法使其工作。任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:1)
使用密钥迭代并访问每个字典:
[d["app_key_id"] for d in approved_apps]#
[9991, 8881, 7771]
如果可能存在没有钥匙以避免关键错误的说法,请使用if "app_key_id" in d
[d["app_key_id"] for d in approved_apps if "app_key_id" in d ]
答案 1 :(得分:0)
这是另一种解决方案,如果您想要检索' app_key_id'来自' user_profile'持有&approved_apps'
approved_apps= [
{'app_key_id':9991,'app_name':'Posts','app_path':'/posts'},
{'app_key_id':8881,'app_name':'Tasks','app_path':'/tasks'},
{'app_key_id':7771,'app_name':'Projects','app_path':'/projects'}]
user_profile = {
'user_info':
{'user_lname':'Doe','user_fname':'John','user_email':'johndoe@gmail.com'},
'user_privileges':approved_apps}
app_key_id=None
for k,v in user_profile.items():
app_key_id=[result['app_key_id'] for result in v if type(v) is list and 'app_key_id' in result]
print app_key_id