【问题标题】:Python create list of objects from dictPython从dict创建对象列表
【发布时间】:2019-02-10 18:32:16
【问题描述】:

我正在获取用户及其信息的字典

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

这将返回正确的结构,但我需要动态添加用户属性,而不是手动放入每个索引或字符串值

【问题讨论】:

    标签: python list loops object key-value


    【解决方案1】:

    我最初会使用 username 键创建每个 dict,然后使用 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      相关资源
      最近更新 更多