如何在python中使用键或值获取JSON对象索引,并删除与该索引匹配的整个对象?

如何在python中使用键或值获取JSON对象索引,并删除与该索引匹配的整个对象?,python,json,python-2.7,Python,Json,Python 2.7,如何获取与ID==0012匹配的对象的索引,并使用obj.pop(index)删除整个对象。利用一些: 这将尊重对象,而垃圾收集将处理其余部分 甚至可以将输出重新绑定到初始变量名 sample_json = [{'ID': '0001', 'Name': 'Anand', 'PTime': '8:00'}, {'ID': '0012', 'Name': 'Arun',

如何获取与ID==0012匹配的对象的索引,并使用obj.pop(index)删除整个对象。

利用一些:

这将尊重对象,而垃圾收集将处理其余部分

甚至可以将输出重新绑定到初始变量名

sample_json = [{'ID': '0001',
                'Name': 'Anand',
                'PTime': '8:00'},
               {'ID': '0012',
                'Name': 'Arun',
                'PTime': '8:00'},]

[ x for x in sample_json if x['ID'] != '0012' ]
# output
[{'ID': '0001', 'Name': 'Anand', 'PTime': '8:00'}]

使用过滤器和lambda:

sample_json = [ x for x in sample_json if x['ID'] != '0012' ]

或者只需使用
filter
查找对象,然后
remove
将其从列表中删除即可

>>> data
[{'ID': '0001', 'PTime': '8:00', 'Name': 'Anand'}, {'ID': '0012', 'PTime': '8:00', 'Name': 'Arun'}]
>>> filter(lambda x:x['ID']=='0012', data)
[{'ID': '0012', 'PTime': '8:00', 'Name': 'Arun'}]
>>> data
[{'ID': '0001', 'PTime': '8:00', 'Name': 'Anand'}, {'ID': '0012', 'PTime': '8:00', 'Name': 'Arun'}]
>>> filter(lambda x:x['ID']=='0012', data)
[{'ID': '0012', 'PTime': '8:00', 'Name': 'Arun'}]
data_list.remove(filter(lambda x:x['ID'] == '0012', data_list)[0])