简体   繁体   中英

How to remove multiple (key,value) entries from a Python List - Ordered Dictionary

I am trying to remove multiple keys from a list ordered dictionary without any success.

The data structure I loaded from a file is shown below:

[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)])]

When I am trying to delete some of the keys from the list of ordered dictionaries, it gives me an error:

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

Error message:

TypeError: list indices must be integers,not str

Iterating a list of OrderedDict is nothing different from a list of normal dictionary. You can do:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM