访问字典列表

2024-05-14 22:01:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试操作从API响应获得的数据,我使用.json()转换了该响应:

{
 'key1':'val1',
 'key2':'val2',
 'value':[
          {'K1':'V1',
           'K2':'V2',
           'K3':'V3'},
          {'K11':'V11',
           'K12':'V12',
           'K13':'V13'},
         ]
}

我想构建一个字典列表,如下所示:

[{V2:{K1:V1, K3:V3}}, {V12:{K11:V11, K13:V13}}]

编辑:我根据它们各自的键来确定V2或V12。关键字是“displayName”,它位于列表中的每个dictionary元素中。你知道吗


Tags: 数据apijson列表k1v3v2v1
2条回答

如果外键('K2''K12')是预先固定的,那么它可以像在列表理解中使用条件字典理解一样简单(咳嗽):

>>> [{subdict[op]: 
...   {key: value for key, value in subdict.items() if key != op}}
...  for op, subdict in zip(['K2', 'K12'], dct['value'])]
[{'V2': {'K1': 'V1', 'K3': 'V3'}}, {'V12': {'K11': 'V11', 'K13': 'V13'}}]

假设您的字典存储在一个名为dct的变量中。你知道吗

不确定如何确定钥匙,但:

output = []

for sub_dict in d.get('value'):
    # assuming its always the middle element?
    nk = sub_dict.keys()[len(sub_dict.keys()) / 2]
    output.append({nk : {k:v for k,v in sub_dict.items() if k != nk}})

[{'K2': {'K1': 'V1', 'K3': 'V3'}}, {'K12': {'K11': 'V11', 'K13': 'V13'}}]

相关问题 更多 >

    热门问题