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

时间:2016-04-03 07:34:23

标签: python json python-2.7

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

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

3 个答案:

答案 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])