如何从 Python 列表中删除多个(键,值)条目 - 有序字典
How to remove multiple (key,value) entries from a Python List - Ordered Dictionary
我试图从列表有序字典中删除多个键,但没有成功。
我从文件中加载的数据结构如下所示:
[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]
我试图从列表有序字典中删除多个键,但没有成功。
我从文件中加载的数据结构如下所示:
[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]