python - 如何从 Python 列表中删除多个(键、值)条目 - 有序字典
问题描述
我正在尝试从列表有序字典中删除多个键,但没有任何成功。
我从文件中加载的数据结构如下所示:
[OrderedDict([('name', 'pageshift'), ('value', ''), ('activity', 'dataupdate'), ('host_name', False), ('db_name', True)]),
OrderedDict([('name', 'bigdata'), ('value', ''), ('activity', 'freeze'), ('host_name', False), ('db_name', True)]),
OrderedDict([('name', 'spark'), ('value', ''), ('activity', 'dataupdate'), ('host_name', False), ('db_name', True)]),
OrderedDict([('name', 'django'), ('value', ''), ('activity', 'insert'), ('host_name', False), ('db_name', True)])]
当我试图从有序字典列表中删除一些键时,它给了我一个错误:
for key in ('value','activity','db_name'):
del jdata[key]
错误信息:
TypeError: list indices must be integers,not str
解决方案
迭代OrderedDict
列表与普通字典列表没有什么不同。你可以做:
for d in jdata:
for key in ('value', 'activity', 'db_name'):
del d[key]
推荐阅读
- python - Seaborn:如何在分布图中添加垂直线 (sns.distplot)
- entity-framework - 实体框架在 Add 上添加了额外的记录
- python - 无法用beautifulsoup抓取python中的链接
- javascript - 有没有办法缩写反应道具?
- r - 如何根据闪亮的输入在管道中添加条件 `dySeries()` 调用
- ios - 我如何将数据传递给swift4中的变量?
- solr - Sorl:返回表格中每个文档的最新报价
- vue.js - 引用一个槽来定义父函数
- c# - ScopeLock 模式:结构还是类?
- asp.net-web-api - 如何在 ASP.NET Core 2.1 中使用 OData?