我已经编译了一个名为“user_responses”的 API 响应列表。这是列表中响应的示例:
{
"ok": true,
"members": [
{
"id": "W012A3CDE",
"team_id": "T012AB3C4",
"name": "spengler",
"deleted": false,
"color": "9f69e7",
"real_name": "spengler",
"tz": "America/Los_Angeles",
"tz_label": "Pacific Daylight Time",
"tz_offset": -25200,
"profile": {
"avatar_hash": "ge3b51ca72de",
"status_text": "Print is dead",
"status_emoji": ":books:",
"real_name": "Egon Spengler",
"display_name": "spengler",
"real_name_normalized": "Egon Spengler",
"display_name_normalized": "spengler",
"email": "spengler@ghostbusters.example.com",
"image_24": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"image_32": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"image_48": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"image_72": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"image_192": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"image_512": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
"team": "T012AB3C4"
},
},
],
我想建立一本字典,其中包括:
1. 一个键,即用户的真实姓名。如果用户没有真实名称,那么我想使用该用户的显示名称。
为此,我尝试在字典理解中使用三元表达式来处理 if/else 条件:
{(sub_dict['profile']['real_name'] if 'real_name' in sub_dict['profile]
else sub_dict['profile']['display_name']):value
for response in user_responses
for sub_dict in response.get('members')}
这似乎只是默认为每个用户使用显示名称,这不是我想要的。
2. 一个值,它是每个用户的所有图像的列表。
为此,我想我可以编写一个列表理解,其中包含以“图像”一词开头的所有键的值。
{(key:[sub_dict['profile'][k] for k in sub_dict['profile'] if k.startswith('image')]
for response in user_responses
for sub_dict in response.get('members')}
有更好的方法来实现这一点吗?预先感谢您的任何帮助。
www说
相关分类