Сообщить об ошибке.

Функция load() модуля json в Python

Прочитать данные из файла JSON

Синтаксис:

import json

json.load(fp, *, cls=None, object_hook=None, 
          parse_float=None, parse_int=None, 
          parse_constant=None, 
          object_pairs_hook=None, **kw)

Параметры:

  • fp - файловый поток,
  • cls=None - пользовательский подкласс JSONDecoder,
  • object_hook=None - пользовательская функция для преобразования каждого литерала словаря,
  • parse_float=None - пользовательская функция для преобразования литералов, похожих на float,
  • parse_int=None - пользовательская функция для преобразования литералов, похожих на int,
  • parse_constant=None - пользовательская функция для преобразования литералов -Infinity, Infinit и NaN,
  • object_pairs_hook=None - пользовательская функция для преобразования литералов, декодированных упорядоченным списком пар,

Возвращаемое значение:

  • объект Python

Описание:

Функция load() модуля json преобразует файловый поток fp, который поддерживает метод file.read() и содержит формат JSON в объект Python. Десериализация объектов Python выполняется согласно таблице преобразования, представленной в описании класса json.JSONEncoder.

Аргумент object_hook это необязательная функция, которая будет вызываться с результатом декодирования каждого объекта JSON dict. Возвращаемое значение object_hook будет использоваться вместо соответствующего словаря dict. Эта функция может быть использована для реализации пользовательских декодеров, например JSON-RPC.

Аргумент object_pairs_hook это необязательная функция, которая будет вызываться с результатом любого литерала объекта, декодированного упорядоченным списком пар. Возвращаемое значение object_pairs_hook будет использоваться вместо словаря dict. Эта функция может быть использована для реализации пользовательских декодеров. Если object_hook также определен, то значение object_pairs_hook имеет приоритет.

В случае определения функции parse_float, она будет вызываться для каждого значения JSON с плавающей точкой. По умолчанию, это эквивалентно float(num_str). Можно использовать другой тип данных или парсер для этого значения, например decimal.Decimal.

В случае определения функции для аргумента parse_int, она будет вызываться для каждого значения JSON с целым числом. По умолчанию, эквивалентен int(num_str). Можно использовать другой тип данных или парсер для этого значения, например float.

В случае определения функции для аргумента parse_constant, она будет вызываться для строк: -Infinity, Infinit, NaN. Может быть использована для вызова исключений при обнаружении недопустимых чисел в формате JSON. Аргумент parse_constant больше не вызывается при null, true, fasle.

Чтобы использовать собственный подкласс JSONDecoder, укажите его с помощью аргумента cls, в противном случае используется JSONDecoder.

Дополнительные ключевые аргументы **kw будут переданы конструктору класса.

Если десериализованные данные не являются допустимым форматом JSON, возникнет исключение JSONDecodeError.

Примеры использования:

>>> import json
# Сначала создадим файл в формате JSON
# что бы потом его прочитать
>>> data = [
... 'foo', 
... {'bar': ['baz', None, 1.0, 2], 
... 'key': 'value', 
... '10': 'ten'}, 
... [3, 4, 5, 6]
... ]
# Открываем файл на запись
>>> with open('data.json', 'w') as fp:
        # Преобразование объекта Python в данные 
        # формата JSON, а так же запись в файл 'data.json'
...     json.dump(data, fp)
...
# теперь прочитаем данные из файла 'data.json'
>>> with open('data.json', 'r') as fp:
        # Чтение файла 'data.json' и преобразование
        # данных JSON в объект Python 
...     data = json.load(fp)
...

# Доступ к данным
>>> data[0]
# 'foo'
>>> data[1]['bar']
# ['baz', None, 1.0, 2]
>>> data[1]['bar'][2]
# 1.0
>>> data[1]['10']
# 'ten'
>>> data[2][3]
# 6