Removing JSON property in array of objects

前端 未结 4 1258
鱼传尺愫
鱼传尺愫 2020-12-09 09:26

I have a JSON array that I\'m cleaning up in Python. I want to remove the imageData property:

data.json

[{\"title\": \"         


        
相关标签:
4条回答
  • 2020-12-09 09:58

    If not all the elements have an imageData key, then using del will cause an KeyError exception. You could guard against that by using pop with a default:

    for item in data: 
        item.pop('image', None)
    
    0 讨论(0)
  • 2020-12-09 09:58
    [ item for item in data if not item['imageData'] ]
    

    is empty becaus all have imageData. You are just testing for it, not removing it.

    Loop over date and del item['imageData'] on each item.

    0 讨论(0)
  • 2020-12-09 10:15

    How about:
    clean_data = [k:v for k,v in data.iteritems() if k != 'imageData']

    Or a dictionary expresion/comprehension if you want a dictionary:
    clean_data = {k:v for k,v in data.iteritems() if k != 'imageData'}

    0 讨论(0)
  • 2020-12-09 10:16

    An easy solution to your problem is deleting the unwanted key in place, with del:

    import json
    
    with open('data.json') as json_data:
        data = json.load(json_data)
        for element in data: 
            del element['imageData'] 
    

    You should add some safety checks, but you get the idea.

    0 讨论(0)
提交回复
热议问题