将项目添加到嵌套词典列表中的每个词典中

时间:2020-10-20 11:26:56

标签: python dataframe dictionary

我有一个列表,其中有嵌套的字典,例如以下结构:

[
{'family': '',
  'given': '',
  'affiliation': [{'': ''}]},

 {'family': '',
  'given': '',
  'affiliation': [{'': ''}]},

 {'family': '',
  'given name': '',
  'localId': '',
  'affiliation': [{'': ''}]},

 {'family': '',
  'given name': '',
  'affiliation': [{'': ''}]}
]

我想在每个嵌套字典中添加一个 id 字典,以使结构变为:

[
 {'id':'',
  'family': '',
  'given': '',
  'affiliation': [{'': ''}]},

 {'id':'',
  'family': '',
  'given': '',
  'affiliation': [{'': ''}]},

 {'id':'',
  'family': '',
  'given name': '',
  'localId': '',
  'affiliation': [{'': ''}]},

 {'id':'',
  'family': '',
  'given name': '',
  'affiliation': [{'': ''}]}
]

我尝试了以下代码,其中 tmp 是我的列表名称:

tmp.append({'id':df.id[0]})

结果为:

[
{'family': '',
  'given': '',
  'affiliation': [{'': ''}]},

 {'family': '',
  'given': '',
  'affiliation': [{'': ''}]},

 {'family': '',
  'given name': '',
  'localId': '',
  'affiliation': [{'': ''}]},

 {'family': '',
  'given name': '',
  'affiliation': [{'': ''}]},
 {'id': '776'}
]

有人可以建议如何解决此问题,以便我可以在每本词典中添加 id 吗?

我希望使用一行代码而不是循环代码,以便可以将其应用于具有这些嵌套字典的数据框的每个单元格。

3 个答案:

答案 0 :(得分:1)

只需循环列表项并添加新字段

l = [
  {'family': '',
    'given': '',
    'affiliation': [{'': ''}]},

  {'family': '',
    'given': '',
    'affiliation': [{'': ''}]},

  {'family': '',
    'given name': '',
    'localId': '',
    'affiliation': [{'': ''}]},

  {'family': '',
    'given name': '',
    'affiliation': [{'': ''}]}
]
for e in l:
  e['id'] = ''

答案 1 :(得分:1)

我认为您必须遍历字典列表,并在每个字典中添加'id'属性

for i in range(len(tmp)):
    tmp[i]['id'] = ''

答案 2 :(得分:0)

尝试一下:

[i.update({'id':''}) for i in tmp]