Python 从字典创建对象列表
Python create list of objects from dict
我正在获取用户及其信息的指令
{'Username': 'username', 'Attributes': [{'Name': 'sub', 'Value': 'userSub'}, {'Name': 'email', 'Value': 'email'}
我想将其重组为一个对象数组
例如)[{username: 'username', sub: 'userSub', email: 'email'}, {username: 'secondUsername', sub: 'secondSub'...}]
如何在不手动输入每个值的情况下完成此操作,因为每个用户可能有不同的属性
目前我有这个
for user in response['Users']:
userList.append({
'username': user['Username'],
user['Attributes'][0]['Name']: user['Attributes'][0]['Value'],
})
这将 return 正确的结构,但我需要动态添加用户属性而不是手动放入每个索引或字符串值
我最初创建每个 dict
时只使用其 username
键,然后使用 update
方法添加其余键。
from operator import itemgetter
get_kv_pairs = itemgetter('Name', 'Value')
# e.g.
# get_kv_pairs({'Name': 'sub', 'Value': 'userSub'}) == ('sub', 'userSub')
user_list = []
for user in response['Users']:
d = {'username': user['Username']}
kv_pairs = map(get_kv_pairs, user['Attributes'])
d.update(kv_pairs)
user_list.append(d)
我正在获取用户及其信息的指令
{'Username': 'username', 'Attributes': [{'Name': 'sub', 'Value': 'userSub'}, {'Name': 'email', 'Value': 'email'}
我想将其重组为一个对象数组
例如)[{username: 'username', sub: 'userSub', email: 'email'}, {username: 'secondUsername', sub: 'secondSub'...}]
如何在不手动输入每个值的情况下完成此操作,因为每个用户可能有不同的属性
目前我有这个
for user in response['Users']:
userList.append({
'username': user['Username'],
user['Attributes'][0]['Name']: user['Attributes'][0]['Value'],
})
这将 return 正确的结构,但我需要动态添加用户属性而不是手动放入每个索引或字符串值
我最初创建每个 dict
时只使用其 username
键,然后使用 update
方法添加其余键。
from operator import itemgetter
get_kv_pairs = itemgetter('Name', 'Value')
# e.g.
# get_kv_pairs({'Name': 'sub', 'Value': 'userSub'}) == ('sub', 'userSub')
user_list = []
for user in response['Users']:
d = {'username': user['Username']}
kv_pairs = map(get_kv_pairs, user['Attributes'])
d.update(kv_pairs)
user_list.append(d)