I have a JSON array that I'm cleaning up in Python. I want to remove the imageData
property:
data.json
[{"title": "foo", "imageData": "xyz123"}, {"title": "bar", "imageData": "abc123"}, {"title": "baz", "imageData": "def456"}]
I am setting up a list comprehension to remove the property, but I'm not sure how to create the variable that focuses on imageData
:
import json with open('data.json') as json_data: data = json.load(json_data) clean_data = [ item for item in data if not item['imageData'] ] # Write `clean_data` to new json file
When I print
the list comprehension, it returns an empty array. What do I have to correct to get this working properly?
To remove JSON element, use the delete keyword in JavaScript.
To delete a JSON object from a list: Parse the JSON object into a Python list of dictionaries. Use the enumerate() function to iterate over the iterate over the list. Check if each dictionary is the one you want to remove and use the pop() method to remove the matching dict.
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.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With