我试图根据键将一个对象/字典添加到我已经存在的字典中,但是已经存在的对象正在被覆盖。
我所要达到的目标是:
'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完全失去了感觉。我希望有人能告诉我我做错了什么。
发布于 2018-09-18 12:36:20
您可以尝试以下方法:
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'])https://stackoverflow.com/questions/52386680
复制相似问题