Как вырезать json с помощью python

Мой план состоит в том, чтобы «очистить» json ниже (json n.1), чтобы сохранить только значение местоположения, дату и значение PM25 (json n.2). Я хотел бы сделать это с помощью языка Python. Кто-нибудь знает как это сделать ? Большое спасибо за вашу поддержку.

json № 1 (дикт):

 'level': 'hyper-local',
 'date': '2020-12-14T15:00:00+00:00',
 'pollutants': {'NO2': {'description': 'Nitrogen dioxide',
   'concentration': {'mugm3': {'value': 22}},
   'aqi': {'elichens': {'value': 11.0,
     'category': 'Very Low Pollution',
     'color': '#6cef00'}}},
  'O3': {'description': 'Ozone',
   'concentration': {'mugm3': {'value': 27}},
   'aqi': {'elichens': {'value': 11.0,
     'category': 'Very Low Pollution',
     'color': '#6cef00'}}},
  'PM25': {'description': 'Fine particulate matter (< 2.5 µm)',
   'concentration': {'mugm3': {'value': 9}},
   'aqi': {'elichens': {'value': 15.0,
     'category': 'Very Low Pollution',
     'color': '#93f400'}}},
  'PM10': {'description': 'Fine particulate matter (< 10 µm)',
   'concentration': {'mugm3': {'value': 15}},
   'aqi': {'elichens': {'value': 15.0,
     'category': 'Very Low Pollution',
     'color': '#93f400'}}}},
 'global_aqi': {'elichens': {'value': 15.0,
   'dominant': 'PM25',
   'info': 'eLichens Air Quality Index (eAQI)',
   'category': 'Very Low Pollution',
   'color': '#93f400'}}}

Моя цель - получить что-то вроде этого:

json № 2 (дикт):

 'pollutants': {'PM25': {'concentration': {'mugm3': {'value': 9}}}}}}

Мне удалось извлечь нужную мне информацию следующим образом:

pprint(data)
data1=data['location']['latitude']
data2=data['location']['longitude']
data2=data['date']
data3=data['pollutants']['PM25']['aqi']

Вывод для данных1: 5.7782350000000005 (с плавающей запятой)
Вывод для данных2: 45.204480000000004 (с плавающей запятой)
Вывод для data3: '2020-12-14T15:00:00+00:00' (строка)
Выход для данных4: 15,0 (с плавающей запятой)

Теперь я пытаюсь объединить данные1, данные2, данные3 и данные4 в файл json.

Ну что вы пробовали до сих пор? Покажите нам код и опишите проблемы, с которыми вы столкнулись, не требуйте полного решения.

Mike Roll 14.12.2020 16:51

Просто JSON.loads(), а затем вы можете отфильтровать необходимые компоненты, а затем выполнить JSON.dumps().

Han Xiong 14.12.2020 16:52

Привет @Mike, я обновил свой вопрос.

Marie-Laure Aix 14.12.2020 19:08

Спасибо, @Han, я пытаюсь воспользоваться твоим советом.

Marie-Laure Aix 14.12.2020 19:11
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
716
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мне удалось извлечь нужные мне данные с помощью этого фрагмента кода (d — это мой json n.1, который является dict). Я думаю, это не идеальное решение, но оно работает :)

location,date,pm=d['location'],d['date'],d['pollutants']['PM25']['aqi']['elichens']['value']
dict1 = {'location':location}
dict2 = {'date':date}
dict3 = {'PM25':pm}
dict1.update(dict2)
dict1.update(dict3)
print(dict1)

Другие вопросы по теме