Как использовать данные JSON в Python

12 set 2022 2 min di lettura
Как использовать данные JSON в Python
Indice dei contenuti

Введение

JSON — это удобочитаемый текстовый формат данных. Он не зависит от языка и используется для обмена данными между приложениями.

В этой статье мы объясним, как анализировать данные JSON в Python.

Python JSON

Модуль json, который позволяет кодировать и декодировать данные JSON, является частью стандартной библиотеки Python.

JSON — это строка, представляющая данные. Кодирование или сериализация означает преобразование объекта Python в строку JSON, которую можно сохранить в файле или передать по сети. Процесс обратного кодирования или десериализации, при котором строка JSON преобразуется в объект Python.

Ниже мы видим таблицу, показывающую объекты Python и их эквивалентное представление JSON:

Питон JSON
диктовать объект
список, кортеж множество
ул нить
внутр., плав. количество
Истинный истинный
ЛОЖЬ ЛОЖЬ
Нет, это не так нулевой

Для работы с JSON просто импортируйте форму вверху файла:

import json

Кодировать JSON в Python

Модуль json имеет два метода кодирования объектов Python в форматированные строки JSON: dump() и dumps().

Метод dump() отправляет вывод в файлоподобный объект. Требуются два позиционных аргумента: кодируемый объект и файлоподобный объект. Вот пример:

data = {
 "country": "Germany",
 "vehicle": {
 "name": "Volkswagen",
 "model": "T-Roc"
 }
 }

 with open("file.json", "w") as file:
 json.dump(data, file)

Если вы запустите скрипт, будет создан файл с именем file.json со следующим содержимым:

{"country": "Germany", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}

Метод dumps() работает как dump(), но вместо отправки вывода в файлоподобный объект возвращает строку:

data = {
 "country": "Germany",
 "vehicle": {
 "name": "Volkswagen",
 "model": "T-Roc"
 }
 }

 json.dumps(data)
'{"country": "Germany", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}'

Оба метода принимают одни и те же аргументы ключевого слова. Например, если вы анализируете или отлаживаете данные JSON, вы можете указать уровень отступа:

data = {
 "country": "Germany",
 "vehicle": {
 "name": "Volkswagen",
 "model": "T-Roc"
 }
 }

 print(json.dumps(data, indent=2))
{
 "country": "Germany",
 "vehicle": {
 "name": "Volkswagen",
 "model": "T-Roc"
 }
 }

Декодировать JSON в Python

Чтобы преобразовать закодированные данные JSON в объекты Python, используйте методы load() и load( loads().

Метод load() считывает структуру JSON из файлового объекта и преобразует ее в объект Python.

Предположим, у нас есть следующий файл JSON:

[
 {
 "userId": 1,
 "id": 1,
 "title": "Meet with Lisa",
 "completed": true
 },
 {
 "userId": 1,
 "id": 2,
 "title": "Design a prototype",
 "completed": false
 }
 ]

Чтобы преобразовать данные JSON в представление Python, вы должны использовать что-то вроде этого:

import json

 with open('file.json') as f:
 data = json.load(f)

 type(data)

JSON преобразуется в список Python, который вы можете использовать в своем коде:

<class 'list'>

Метод loads() преобразует строку, содержащую документ JSON, в объект Python:

import json

 json_str= '{"userId": "1", "id": "1", "title": "Meet with Lisa", "completed": "True"}'

 print(json.loads(json_str))

Строка преобразуется в словарь Python:

{'userId': '1', 'id': '1', 'title': 'Meet with Lisa', 'completed': 'True'}

Вот более сложный пример, показывающий, как сделать запрос API и декодировать данные JSON:

import json
 import requests

 response = requests.get("https://jsonplaceholder.typicode.com/users")
 users = json.loads(response.text)

 print(users)

Вывод

В этом руководстве мы увидели, как кодировать и декодировать данные JSON в Python.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.