Python создает список объектов из dict - PullRequest
0 голосов
/ 10 февраля 2019

Я получаю данные о пользователях и их информации

{'Username': 'username', 'Attributes': [{'Name': 'sub', 'Value': 'userSub'}, {'Name': 'email', 'Value': 'email'}

Я хочу преобразовать это в массив объектов

ex) [{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'],
        })

Это вернет правильную структуру, но мне нужнодинамически добавлять пользовательские атрибуты вместо ручного ввода каждого индекса или строкового значения

1 Ответ

0 голосов
/ 10 февраля 2019

Я бы изначально создал каждый 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...