Анализ данных JSON в Python

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

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

Python JSON

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

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

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

Python JSON
диктовать объект
список, кортеж массив
ул строка
int, float количество
Правда правда
Ложь ложный
Никто ноль

Для работы с 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 :

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() и loads() методы.

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

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

file.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.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оставьте комментарий