Атрибут json
Атрибут json применяется к объекту запроса
request и содержит данные, полученные
из тела запроса в формате JSON. Если тело запроса
не содержит корректный JSON или тип содержимого
не соответствует application/json, атрибут
возвращает None. При успешном разборе
результатом может быть словарь, список или
скалярное значение в зависимости от содержимого.
Синтаксис
request.json
Пример
Давайте отправим POST-запрос с JSON-телом и вернём полученное значение обратно:
from flask import Flask, request
app = Flask(__name__)
@app.route('/api', methods=['POST'])
def api():
data = request.json
return data
Результат выполнения кода при отправке
тела {"name": "abcde"}:
{"name": "abcde"}
Пример
Давайте извлечём конкретное поле из разобранного JSON:
from flask import Flask, request
app = Flask(__name__)
@app.route('/user', methods=['POST'])
def user():
data = request.json
name = data.get('name')
return name
Результат выполнения кода при отправке
тела {"name": "abcde"}:
"abcde"
Пример
Давайте обработаем случай, когда тело запроса не содержит JSON, и вернём значение по умолчанию:
from flask import Flask, request
app = Flask(__name__)
@app.route('/data', methods=['POST'])
def data():
payload = request.json
if payload is None:
return 'no json'
return payload
Результат выполнения кода при отправке запроса без JSON-тела:
"no json"
Смотрите также
-
метод
get_json,
который возвращает JSON-данные с дополнительными параметрами -
метод
on_json_loading_failed,
который обрабатывает ошибку разбора JSON -
атрибут
is_json,
который проверяет, содержит ли запрос JSON -
атрибут
data,
который содержит тело запроса в виде байтов