Преобразование JSON в словарь Python
В этом руководстве вы научитесь преобразовывать JSON файл или строку в Python словарь. Умение работать с JSON данными является важным навыком для разработчика на Python любого уровня. В большинстве случаев данные, к которым вы обращаетесь через веб-API, будут приходить в виде JSON данных. Способность преобразовывать эти JSON объекты в Python словари позволит вам работать с данными более эффективно.
К концу этого урока вы узнаете:
Как загрузить файл JSON в словарь Python
Как загрузить строку JSON в словарь
Как загрузить данные из API в словарь Python
Оглавление
Что такое JSON?
JSON означает JavaScript Object Notation и это популярный формат для представления данных. Хотя он возник в JavaScript, формат быстро распространился благодаря своей универсальности. Сам формат очень похож на словарь в Python. Однако во многих случаях данные представлены строкой, представляющей объект. Нам нужно преобразовать эту строку в словарь Python, чтобы работать с ней в Python.
Использование JSON с Python
Python поставляется с встроенной библиотекой json
, которая позволяет работать с объектами JSON значимыми способами. В этом руководстве мы рассмотрим две ее функции, которые позволяют преобразовывать объекты JSON в словари Python:
json.load()
, который загружает файл JSON в словарь Pythonjson.loads()
, который загружает строковое представление JSON файла в словарь Python
Во второй функции, как вы могли догадаться, суффикс s
относится к string
. В следующих разделах вы узнаете, как использовать эти функции для преобразования JSON объекта в Python словарь.
Загрузите файл JSON в словарь Python
В этом разделе вы узнаете, как использовать функцию json.load()
для загрузки JSON-файла в словарь Python. Если вы хотите следовать инструкциям, вы можете скачать файл здесь. Файл представляет данные с международной космической станции, API которой мы изучим позже в этом уроке.
Давайте посмотрим, как можно использовать функцию load()
для загрузки внешнего JSON файла:
Давайте разберем, что мы сделали в коде выше:
Мы загрузили библиотеку
json
Мы использовали менеджер контекста для загрузки нашего файла в режиме чтения, используя псевдоним
file
Затем мы использовали функцию
json.load()
, чтобы загрузить наш файл в переменнуюdata
Наконец, мы напечатали наш результирующий словарь
Хотя вы можете сделать это без использования менеджера контекста, менеджер контекста обрабатывает закрытие файла, тем самым сохраняя память.
Мы можем проверить тип полученного значения, используя функцию type()
. Это позволяет нам убедиться, что мы действительно загрузили словарь:
В некоторых случаях вам не придется работать с данными в файле .json
. Иногда вам будет просто предоставлена строка, представляющая JSON-объект. В следующем разделе вы узнаете, как работать со строками, представляющими JSON
Загрузите строку JSON в словарь Python
Во многих случаях вам будут предоставлены данные JSON в строковом формате. Работа с ними отличается от работы с файлом .json
. При работе с строковыми представлениями файла JSON можно использовать функцию json.loads()
, которая используется для "загрузки строки"
Давайте посмотрим, как это можно сделать на Python с использованием модуля json
Мы видим из приведенного выше примера, что путем передачи строки в функцию json.loads()
, мы смогли легко преобразовать JSON-строку в словарь Python. В заключительном разделе ниже вы узнаете, как использовать функцию json.loads()
, чтобы загрузить объект JSON-ответа из веб API в словарь Python.
Загрузите данные JSON из API в словарь Python
В этом разделе вы узнаете, как использовать библиотеки json
и requests
для получения данных из веб-API и загрузки их в словарь Python. Для этого мы будем использовать API NASA, который описывает текущее состояние Международной космической станции. Вы можете найти его здесь. Мы будем использовать конечную точку iss-now
, которая предоставляет текущее местоположение.
Давайте посмотрим, как мы можем использовать библиотеку json
для загрузки полученного ответа:
Давайте разберем, что мы сделали здесь:
Мы импортировали необходимые библиотеки:
json
иrequests
Мы загрузили переменную
response
с помощью функцииrequests.get()
, передав нашurl
Затем мы получили текстовое представление из объекта
response
Наконец, мы передали это в функцию
json.loads()
, чтобы преобразовать строку в словарь
Это достаточно много кода, и, к счастью, есть более простой способ! **Библиотека requests
позволяет нам применять метод .json()
к объекту ответа, чтобы преобразовать его в словарь
Давайте посмотрим, как это работает:
В приведённом выше примере нам не нужно было импортировать библиотеку json
, чтобы преобразовать строку в словарь Python. Это происходит, когда мы загружаем объект response
с помощью функции .get()
. Затем мы применяем метод .json()
к объекту ответа, чтобы преобразовать его в словарь Python.
Заключение
В этом руководстве вы узнали, как преобразовать JSON в словарь Python. Вы изучили три разных способа сделать это: сначала загрузить файл .json
в словарь Python, затем загрузить строку JSON в словарь и, наконец, работать с веб APIs.
Работа с данными в формате JSON – важный навык, учитывая его повсеместное распространение. Умение конвертировать этот формат в словарь Python поможет вам в веб-разработке и data science.
Дополнительные ресурсы
Чтобы узнать больше по смежным темам, ознакомьтесь с руководствами ниже:
Словари Python: полный обзор
Python: красивая печать JSON (3 разных способа!)
Python: Pretty Print a Dict (словарь) – 4 способа
Last updated