首页 > 解决方案 > 根据 Python 2 中的键将对象添加到字典

问题描述

我正在尝试根据键将对象/字典添加到我已经存在的字典中,但是已经存在的对象正在被覆盖。

我想要达到的目标:

'CXR100': {'MeSH': {u'major': [u'normal'], u'minor': []}, {u'major': [u'normal'], u'minor': []}}

我得到了什么:

'CXR100': {'MeSH': {u'major': [u'normal'], u'minor': []}}

我的代码:

data = dict()
for record in records['list']:
    if data.get(record['uid']):
        data[record['uid']]['MeSH'].update(record['MeSH'])
        # have tried: data[record['uid']]['MeSH'] += {'MeSH': record['MeSH']}
    else:
        data[record['uid']] = {'MeSH': record['MeSH']}

print(data)

过去两年我一直在编程 PHP/Laravel,完全失去了对 Python 的感觉。我希望有人能给我指示我做错了什么。

标签: python

解决方案


您可以尝试以下方法:

for record in records['list']:
    if data.get(record['uid']):
        # ... and append to it later 
        data[record['uid']]['MeSH'].append(record['MeSH'])
    else:
        # make it a list initially ...
        data[record['uid']] = {'MeSH': [record['MeSH']]}

或者您可以使用setdefault输入一行:

for record in records['list']:
    data.setdefault(record['uid'], {'MeSH': []})['MeSH'].append(record['MeSH'])

推荐阅读