Функции по работе с json

В Python для работы с JSON основная библиотека — json (встроенная, устанавливать не нужно).


1. Основные функции модуля json

Функция
Назначение
Пример

json.load(file_obj)

Читает JSON из открытого файла и преобразует в Python-объект

data = json.load(f)

json.loads(str)

Читает JSON из строки

data = json.loads('{"a":1}')

json.dump(obj, file_obj)

Записывает Python-объект в файл в формате JSON

json.dump(data, f)

json.dumps(obj)

Преобразует Python-объект в строку JSON

s = json.dumps(data)


2. Примеры

📄 Чтение JSON из файла

import json

with open("data.json", "r", encoding="utf-8") as f:
    data = json.load(f)

print(data)  # {'name': 'Kakha', 'age': 30}

📜 Чтение JSON из строки


💾 Запись JSON в файл

  • indent=4 — красивое форматирование.

  • ensure_ascii=False — чтобы сохранить кириллицу как есть, а не \u041a.


🔄 Преобразование Python → JSON-строка


3. Особенности

  • Python dict ↔ JSON object

  • Python list ↔ JSON array

  • Python str ↔ JSON string

  • Python int/float ↔ JSON number

  • Python True/False ↔ JSON true/false

  • Python None ↔ JSON null


💡 В автотестах JSON часто используют:

  • для парсинга API-ответов (response.json() в requests)

  • для хранения тестовых данных

  • для сравнения ожидаемого и фактического результата


1. Чтение тестовых данных из JSON

💡 Так тесты остаются независимыми от кода — данные хранятся в отдельных файлах.


2. Работа с API и парсинг JSON

💡 response.json() — сразу отдаёт dict, без ручного json.loads().


3. Сравнение с эталонным JSON

💡 Удобно, если JSON маленький и не содержит динамических полей.


4. Игнор динамических полей при сравнении

💡 Используется, когда API возвращает время, токены и другие переменные значения.


5. Валидация JSON-схемы

💡 Это особенно любят спрашивать на собесах: как проверить, что API отдаёт данные правильного формата.


6. Преобразование JSON в строку для логов

💡 Красивый лог помогает отлаживать тесты и понимать, что вернул API.

Last updated

Was this helpful?