首页 > 解决方案 > 如何从 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

标签: pythonlistdictionaryordereddictionary

解决方案


迭代OrderedDict列表与普通字典列表没有什么不同。你可以做:

for d in jdata:
    for key in ('value', 'activity', 'db_name'):
        del d[key]

推荐阅读