Атрибут 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-телом:
Результат выполнения кода:
Пример
Давайте обработаем 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-массивом:
Результат выполнения кода:
Пример
Давайте проверим, что будет, если 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:
Результат выполнения кода: