Удаление свойства JSON в массиве объектов с помощью Python

У меня есть массив JSON, который я очищаю на Python. Я хочу удалить свойство imageData :

data.json

 [{"title": "foo", "imageData": "xyz123"}, {"title": "bar", "imageData": "abc123"}, {"title": "baz", "imageData": "def456"}] 

Я устанавливаю понимание списка, чтобы удалить свойство, но я не уверен, как создать переменную, которая фокусируется на 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 

Когда я print понимание списка, он возвращает пустой массив. Что я должен исправить, чтобы нормально работать?

4 Solutions collect form web for “Удаление свойства JSON в массиве объектов с помощью Python”

Легкое решение вашей проблемы – удаление ненужного ключа на месте с помощью del :

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

Вы должны добавить некоторые проверки безопасности, но вы получите эту идею.

Если не все элементы имеют ключ imageData , то использование del вызывает исключение KeyError . Вы можете предотвратить это, используя pop по умолчанию:

 for item in data: item.pop('image', None) 
 [ item for item in data if not item['imageData'] ] 

пуст, потому что у всех есть imageData . Вы просто проверяете его, а не удаляете .

del item['imageData'] date цикла и del item['imageData'] для каждого item .

Как насчет:
clean_data = [k:v for k,v in data.iteritems() if k != 'imageData']

Или словарь expresion / понимание, если вы хотите словарь:
clean_data = {k:v for k,v in data.iteritems() if k != 'imageData'}

  • Безопасность JSON против Pickle
  • Использование Pandas json_normalize для вложенных Json с массивами
  • Преобразование JSON в SQLite в Python - Как правильно сопоставить json-ключи с столбцами базы данных?
  • как читать объект JSON с помощью ajax из приложения python wsgi
  • Возвращение ответа JSON из представления «Флажок»
  • Приложение Python Flask получает опции вместо POST
  • Gettin HTML-элемент и отправка новых запросов json в python
  • JSON для моделирования класса с использованием Django
  • Python - лучший язык программирования в мире.