Позволяет вам настраивать, в какие объекты будет разбираться ваш JSON.Для этого конкретного аргумента (object_pairs_hook
) он предназначен для пары (считывает пары ключ / значение объекта сопоставления).
Например, если эта строка появляется в вашем JSON:
{"var1": "val1", "var2": "val2"}
Itвызовет вашу функцию, на которую указывает указанная ниже аргумент:
[('var1', 'val1'), ('var2', 'val2')]
Что бы функция не возвращала, это будет то, что будет использовано в результирующей проанализированной структуре, в которой была приведенная выше строка.
Тривиальный примерis object_pairs_hook=collections.OrderedDict
, который гарантирует, что ваши ключи будут упорядочены так же, как они были во входящей строке.
Общая идея перехвата состоит в том, чтобы позволить вам зарегистрировать функцию, которая вызывается (назад)по мере необходимости для данной задачи.В этом конкретном случае он позволяет настроить декодирование (различных типов объектов) входящей строки JSON.