Метод get_json
Метод get_json применяется к объекту запроса
request и разбирает тело запроса как JSON.
Первым параметром передаётся флаг force,
который заставляет разобрать данные даже при
неверном Content-Type. Вторым параметром идёт
silent, который подавляет исключение при
ошибке разбора и возвращает None. Третьим
параметром передаётся cache, включающий
кэширование результата разбора.
Синтаксис
request.get_json(force=False, silent=False, cache=True)
Пример
Давайте примем JSON-объект и вернём одно из его полей:
from flask import Flask, request
app = Flask(__name__)
@app.route('/user', methods=['POST'])
def user():
data = request.get_json()
return data['name']
Результат выполнения кода при отправке JSON {"name": "abcde"}:
"abcde"
Пример
Давайте вернём весь разобранный словарь целиком:
from flask import Flask, request
app = Flask(__name__)
@app.route('/data', methods=['POST'])
def data():
res = request.get_json()
return res
Результат выполнения кода при отправке JSON {"a": 1, "b": 2}:
{'a': 1, 'b': 2}
Пример
Давайте воспользуемся параметром silent,
чтобы не получить исключение при неверном JSON:
from flask import Flask, request
app = Flask(__name__)
@app.route('/data', methods=['POST'])
def data():
res = request.get_json(silent=True)
if res is None:
return 'invalid json'
return res
Результат выполнения кода при отправке некорректного JSON:
"invalid json"
Смотрите также
-
класс
Request,
который представляет входящий HTTP-запрос -
атрибут
json,
который хранит разобранные JSON-данные -
атрибут
is_json,
который проверяет, является ли запрос JSON -
метод
on_json_loading_failed,
который вызывается при ошибке разбора JSON