Метод loads
Метод loads применяется к классу json
и преобразует строку в формате JSON в объекты Python.
Первым параметром передаётся строка JSON. Вторым
необязательным параметром можно передать объект,
который будет использоваться для декодирования.
Метод возвращает объект Python: словарь, список,
строку, число, булево значение или None.
Синтаксис
json.loads(s, [cls])
Пример
Давайте десериализуем строку JSON в словарь Python:
from flask import Flask, json
app = Flask(__name__)
@app.route('/')
def index():
res = json.loads('{"name": "abcde", "age": 25}')
return str(res)
Результат выполнения кода:
{'name': 'abcde', 'age': 25}
Пример
Давайте десериализуем строку JSON в список:
from flask import Flask, json
app = Flask(__name__)
@app.route('/')
def index():
res = json.loads('[1, 2, 3, 4, 5]')
return str(res)
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Давайте обработаем вложенную JSON-структуру:
from flask import Flask, json
app = Flask(__name__)
@app.route('/')
def index():
data = '{"user": {"name": "abcde", "roles": ["admin", "user"]}}'
res = json.loads(data)
return res['user']['name']
Результат выполнения кода:
"abcde"
Пример
Давайте десериализуем JSON с ошибкой и обработаем исключение:
from flask import Flask, json
app = Flask(__name__)
@app.route('/')
def index():
try:
res = json.loads('{"name": "abcde"')
except ValueError as e:
res = 'error: ' + str(e)
return res
Результат выполнения кода:
"error: Expecting property name enclosed in double quotes"
Смотрите также
-
метод
dumps,
который сериализует объекты Python в строку JSON -
метод
load,
который десериализует JSON из файлового объекта -
класс
json,
который предоставляет методы для работы с JSON -
класс
JSONProvider,
который настраивает сериализацию и десериализацию JSON