I have a JSON array that I\'m cleaning up in Python. I want to remove the imageData
property:
data.json
[{\"title\": \"
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)
[ 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
.
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'}
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.