根据python2中的键向字典添加对象

2024-10-03 11:14:26 发布

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

我正试图根据键将对象/词典添加到已存在的词典中,但已存在的对象正在被覆盖。你知道吗

我要达到的目标是:

'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完全失去了兴趣。我希望有人能指点我做错了什么。你知道吗


Tags: 对象代码目标foruiddatarecorddict
1条回答
网友
1楼 · 发布于 2024-10-03 11:14:26

您可以尝试以下操作:

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'])

相关问题 更多 >