Sample JSON:
[{'ID': '0001',
'Name': 'Anand',
'PTime': '8:00'},
{'ID': '0012',
'Name': 'Arun',
'PTime': '8:00'},]
如何获取与ID == 0012匹配的Object的索引,并使用obj.pop(index)删除整个对象。
答案 0 :(得分:0)
利用一些list comprehension:
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'}]
这将尊重对象,垃圾收集将处理其余部分。
您甚至可以将输出重新绑定到初始变量名称
sample_json = [ x for x in sample_json if x['ID'] != '0012' ]
答案 1 :(得分:0)
使用filter和lambda:
>>> 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'}]
答案 2 :(得分:0)
或者只需使用filter
查找对象,然后remove
将其从列表中删除。
data_list.remove(filter(lambda x:x['ID'] == '0012', data_list)[0])