python - 根据 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 的感觉。我希望有人能给我指示我做错了什么。
解决方案
您可以尝试以下方法:
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'])
推荐阅读
- regex - 如何在 nginx 中创建一个正确的正则表达式,它将匹配“?item_id =”
- c# - 如何使用 Cake 脚本执行 t4 模板
- python-3.x - 该程序不显示 lambda 表达式中的列表(python v3)
- angular - Monorepo 中 Angular 库与 Angular 模块的优势?NX 架构
- angular - 如何在单击谷歌地图 Ionic/Angular 中的另一个标记时删除以前的信息窗口?
- java - 更改 Youtube 数据 API PublishAt 日期格式
- html - Bootstrap 4:两个菜单一个显示和一个活动菜单项
- python - 为什么我不能用 ctypes Structure 修改超类属性的值?
- python - Python:尝试搜索 csv 第一列并在同一行的另一个文件中的 len > 30 时将其拆分
- java - @Put 映射图像