python - 从字典列表中提取数据
问题描述
嗨,我想将字典列表转换为列表中某些项目的单个字典:我有:
>>> print(dct_lst)
[{'id': 456, 'name': 'bar'}, {'id': 789, 'name': 'baz'}, {'id': 123, 'name': 'foo'}]
我想:
dct={'bar':None
'baz':None
'foof':None}
我已经尝试过(在其他组合中):
>>> for i in dct_lst['name']:
... btns[i]=None
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
我如何得到我需要的东西?
解决方案
考虑使用字典理解:
>>> dct_lst = [{'id': 456, 'name': 'bar'}, {'id': 789, 'name': 'baz'}, {'id': 123, 'name': 'foo'}]
>>> dct = {d['name']: None for d in dct_lst if 'name' in d}
>>> dct
{'baz': None, 'foo': None, 'bar': None}
推荐阅读
- react-native - 如何在 React Native 中使用小米手环 3 进行身份验证
- mongodb - mongodb“_id”索引是否始终保存在缓存中?
- c - TLS v1.2 未选择 OpenSSL 1.1.1e RC4-MD5 密码
- vue.js - 根据其他数据更新数据
- php - PHP 警告:ldap_bind():无法绑定到服务器:无法联系 docker 内的 LDAP 服务器
- javascript - 在我的 nodejs 应用程序中有两个单独的模式
- c# - 将日期时间转换为日期时间?(零合并?)
- r - 有什么方法可以替换 r 中的 for 循环
- python - 如何修改我当前的二叉搜索树以创建一棵空树?
- python - Pandas 以奇怪的格式返回数据(Int64、Float64)