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

Атрибут json

Атрибут json применяется к объекту запроса request и возвращает словарь с данными, которые клиент передал в теле запроса в формате JSON. Если тело запроса не содержит JSON или тип содержимого не равен 'application/json', атрибут возвращает None. Это удобно для обработки данных, отправленных через JavaScript-запросы или программные клиенты.

Синтаксис

request.json

Пример

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

from bottle import Bottle, request app = Bottle() @app.route('/api', method='POST') def api(): data = request.json if data: return data.get('name', 'no name') return 'no json'

Отправим POST-запрос с JSON-телом:

<+terminal+> curl -X POST -H "Content-Type: application/json" -d '{"name": "abcde"}' http://localhost:8080/api <-terminal+>

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

<+html+> abcde <-html+>

Пример

Давайте обработаем JSON-массив и вернём его длину:

from bottle import Bottle, request app = Bottle() @app.route('/items', method='POST') def items(): data = request.json if isinstance(data, list): return str(len(data)) return 'not a list'

Отправим POST-запрос с JSON-массивом:

<+terminal+> curl -X POST -H "Content-Type: application/json" -d '[1, 2, 3, 4, 5]' http://localhost:8080/items <-terminal+>

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

<+html+> 5 <-html+>

Пример

Давайте проверим, что будет, если JSON не передан:

from bottle import Bottle, request app = Bottle() @app.route('/check', method='POST') def check(): data = request.json if data is None: return 'no json data' return 'json received'

Отправим POST-запрос без заголовка Content-Type:

<+terminal+> curl -X POST -d 'hello' http://localhost:8080/check <-terminal+>

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

<+html+> no json data <-html+>

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

  • класс Request,
    который представляет HTTP-запрос
  • атрибут forms,
    который возвращает данные форм
  • атрибут body,
    который возвращает тело запроса
  • атрибут params,
    который объединяет параметры запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить