РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
599 of 643 menu

Метод get_json

Метод get_json применяется к объекту ответа TestResponse, который возвращается при тестировании клиента Flask. Метод десериализует тело ответа как JSON и возвращает соответствующий Python-объект (словарь или список). Если тело ответа не содержит валидный JSON, будет выброшено исключение.

Первым необязательным параметром передаётся force - булево значение. Если установить True, метод попытается разобрать тело ответа как JSON, даже если заголовок Content-Type не равен application/json. Вторым необязательным параметром передаётся silent - если True, метод вернёт None вместо выброса исключения при ошибке разбора. Третьим параметром передаётся cache - кешировать ли результат разбора.

Синтаксис

response.get_json(force=False, silent=False, cache=True)

Пример

Давайте создадим приложение, которое возвращает JSON-ответ, и проверим его через тестовый клиент:

from flask import Flask, jsonify app = Flask(__name__) @app.route('/api/user') def user(): return jsonify({'name': 'abcde', 'age': 25})

Теперь напишем тест, который использует метод get_json:

from app import app client = app.test_client() response = client.get('/api/user') res = response.get_json() print(res)

Результат выполнения кода:

{'name': 'abcde', 'age': 25}

Пример

Давайте создадим приложение, которое возвращает JSON-массив:

from flask import Flask, jsonify app = Flask(__name__) @app.route('/api/items') def items(): return jsonify(['a', 'b', 'c', 'd', 'e'])

Проверим результат через тестовый клиент:

from app import app client = app.test_client() response = client.get('/api/items') res = response.get_json() print(res)

Результат выполнения кода:

['a', 'b', 'c', 'd', 'e']

Пример

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

from flask import Flask app = Flask(__name__) @app.route('/api/text') def text(): return 'hello'

Проверим результат с параметром silent=True:

from app import app client = app.test_client() response = client.get('/api/text') res = response.get_json(silent=True) print(res)

Результат выполнения кода:

None

Смотрите также

  • класс TestResponse,
    который представляет ответ тестового клиента
  • метод get_data,
    который возвращает тело ответа в виде байтов
  • атрибут json,
    который содержит разобранный JSON-ответ
  • атрибут content_type,
    который содержит MIME-тип ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить