Spec-Zone.ru › pandas 1

pandas.read_json

pandas.read_json(path_or_buf, orient=None, typ='frame', dtype=None, convert_axes=None, convert_dates=True, keep_default_dates=True, numpy=False, precise_float=False, date_unit=None, encoding=None, encoding_errors='strict', lines=False, chunksize=None, compression='infer', nrows=None, storage_options=None)[source]

Преобразовать строку JSON в объект pandas.

Параметры
path_or_buf:допустимая строка JSON, объект пути или объект типа «поток данных»

Любой допустимый путь в виде строки приемлем. Строка может быть URL-адресом. Допустимые схемы URL-адресов включают http, ftp, s3 и file. Для URL-адресов файлов ожидается хост. Локальный файл может быть: file://localhost/path/to/table.json.

Если вы хотите передать объект пути, pandas принимает любой os.PathLike.

Под объектом типа «поток данных» мы подразумеваем объекты с методом read(), например, дескриптор файла (например, через встроенную функцию open) или StringIO.

orient:строка

Указание ожидаемого формата строки JSON. Совместимые строки JSON могут быть созданы to_json() с соответствующим значением orient. Множество возможных значений orient:

  • 'split' : словарь, подобный {index -> [index], columns -> [columns], data -> [values]}

  • 'records' : список, подобный [{column -> value}, ... , {column -> value}]

  • 'index' : словарь, подобный {index -> {column -> value}}

  • 'columns' : словарь, подобный {column -> {index -> value}}

  • 'values' : просто массив значений

Допустимые и значения по умолчанию зависят от значения параметра typ.

  • когда typ == 'series',

    • допустимые значения orient — {'split','records','index'}

    • значение по умолчанию — 'index'

    • Индекс Series должен быть уникальным для orient 'index'.

  • когда typ == 'frame',

    • допустимые значения orient — {'split','records','index', 'columns','values', 'table'}

    • значение по умолчанию — 'columns'

    • Индекс DataFrame должен быть уникальным для значений orient 'index' и 'columns'.

    • Столбцы DataFrame должны быть уникальными для значений orient 'index', 'columns', и 'records'.

typ:{‘frame’, ‘series’}, значение по умолчанию ‘frame’

Тип объекта для восстановления.

dtype:bool или словарь, значение по умолчанию None

Если True, то типы данных выводятся; если словарь со столбцами и типами данных, то используются эти типы; если False, то типы данных не выводятся, относится только к данным.

Для всех значений orient за исключением 'table', значение по умолчанию — True.

Изменено в версии 0.25.0: Не применимо к orient='table'.

convert_axes:bool, значение по умолчанию None

Попытка преобразовать оси в соответствующие типы данных.

Для всех значений orient за исключением 'table', значение по умолчанию — True.

Изменено в версии 0.25.0: Не применимо к orient='table'.

convert_dates:bool или список строк, значение по умолчанию True

Если True, то могут быть преобразованы столбцы с датами по умолчанию (в зависимости от keep_default_dates). Если False, никакие даты не будут преобразованы. Если список имён столбцов, то будут преобразованы эти столбцы, а также столбцы с датами по умолчанию (в зависимости от keep_default_dates).

keep_default_dates:bool, значение по умолчанию True

Если происходит разбор дат (convert_dates не равно False), то пытается разобрать столбцы с датами по умолчанию. Столбец считается столбцом с датой по умолчанию, если

  • он заканчивается на '_at',

  • он заканчивается на '_time',

  • он начинается с 'timestamp',

  • он является 'modified', или

  • он является 'date'.

numpy:bool, значение по умолчанию False

Прямое декодирование в массивы NumPy. Поддерживаются только числовые данные, но поддерживаются и нечисловые метки столбцов и индексов. Обратите также внимание, что порядок JSON ДОЛЖЕН быть одинаковым для каждого элемента, если numpy=True.

Устарело начиная с версии 1.0.0.

precise_float:bool, значение по умолчанию False

Установите значение в True, чтобы включить использование функции с большей точностью (strtod) при декодировании строк в значения double. Значение по умолчанию (False) — использование быстрой, но менее точной встроенной функциональности.

date_unit:строка, значение по умолчанию None

Единица измерения временных меток для определения необходимости преобразования дат. По умолчанию поведение заключается в попытке определить правильную точность, но если это нежелательно, то передайте одно из ‘s’, ‘ms’, ‘us’ или ‘ns’, чтобы принудительно разобрать только секунды, миллисекунды, микросекунды или наносекунды соответственно.

encoding:строка, значение по умолчанию ‘utf-8’

Кодировка, используемая для декодирования py3 байтов.

encoding_errors:строка, необязательно, значение по умолчанию “strict”

Как обрабатываются ошибки кодирования. Список возможных значений .

Добавлена в версии 1.3.0.

lines:bool, значение по умолчанию False

Считывать файл как объект json в каждой строке.

chunksize:целое число, необязательно

Возвращает объект JsonReader для итерации. См. документацию по json-файлам с разделителями строк для получения дополнительной информации о chunksize. Этот параметр может быть передан только если lines=True. Если None, то весь файл будет считаться в память сразу.

Изменено в версии 1.2: JsonReader — это менеджер контекста.

compression:строка или словарь, значение по умолчанию ‘infer’

Для сжатия на лету данных на диске. Если ‘infer’ и ‘path_or_buf’ — это путь, то сжатие определяется по следующим расширениям: ‘.gz’, ‘.bz2’, ‘.zip’, ‘.xz’, ‘.zst’, ‘.tar’, ‘.tar.gz’, ‘.tar.xz’ или ‘.tar.bz2’ (в противном случае сжатие отсутствует). При использовании ‘zip’ или ‘tar’, ZIP-файл должен содержать только один файл данных для чтения. Установите значение None для отключения сжатия. Также может быть словарь с ключом 'method', установленным в одно из значений {'zip', 'gzip', 'bz2', 'zstd', 'tar'}, а другие пары ключ-значение передаются в zipfile.ZipFile, gzip.GzipFile, bz2.BZ2File, zstandard.ZstdDecompressor или tarfile.TarFile, соответственно. Например, для сжатия Zstandard с помощью пользовательского словаря сжатия можно передать compression={'method': 'zstd', 'dict_data': my_compression_dict}.

Добавлена в версии 1.5.0: Добавлена поддержка файлов .tar.

Изменено в версии 1.4.0: Поддержка Zstandard.

nrows:целое число, необязательно

Количество строк из файла line-delimited json, которое нужно прочитать. Этот параметр может быть передан только если lines=True. Если None, то будут возвращены все строки.

Добавлена в версии 1.1.

storage_options:словарь, необязательно

Дополнительные параметры, имеющие смысл для конкретного подключения к хранилищу, например, хост, порт, имя пользователя, пароль и т. д. Для URL-адресов HTTP(S) пары ключ-значение передаются в urllib.request.Request в качестве параметров заголовка. Для других URL-адресов (например, начинающихся с «s3://» и «gcs://») пары ключ-значение передаются в fsspec.open. Подробнее см. fsspec и urllib, а дополнительные примеры параметров хранилища см. здесь.

Добавлена в версии 1.2.0.

Возвращаемые значения
Series или DataFrame

Тип возвращаемого значения зависит от значения typ.

См. также

DataFrame.to_json

Преобразование DataFrame в строку JSON.

Series.to_json

Преобразование Series в строку JSON.

json_normalize

Нормализация полуструктурированных данных JSON в плоскую таблицу.

Примечания

Для orient='table', если DataFrame с литеральным именем Index index записывается с to_json(), последующая операция чтения неправильно установит имя Index в None. Это происходит потому, что index также используется DataFrame.to_json() для обозначения отсутствующего имени Index, и последующая операция read_json() не может отличить эти два случая. Такая же ограничение встречается с MultiIndex и любыми именами, начинающимися с 'level_'.

Примеры

>>> df = pd.DataFrame([['a', 'b'], ['c', 'd']],
...                   index=['row 1', 'row 2'],
...                   columns=['col 1', 'col 2'])

Кодирование/декодирование DataFrame с использованием JSON в формате 'split':

>>> df.to_json(orient='split')
    '{"columns":["col 1","col 2"],"index":["row 1","row 2"],"data":[["a","b"],["c","d"]]}'
>>> pd.read_json(_, orient='split')
      col 1 col 2
row 1     a     b
row 2     c     d

Кодирование/декодирование DataFrame с использованием JSON в формате 'index':

>>> df.to_json(orient='index')
'{"row 1":{"col 1":"a","col 2":"b"},"row 2":{"col 1":"c","col 2":"d"}}'
>>> pd.read_json(_, orient='index')
      col 1 col 2
row 1     a     b
row 2     c     d

Кодирование/декодирование DataFrame с использованием JSON в формате 'records'. Обратите внимание, что метки индексов при этом кодировании не сохраняются.

>>> df.to_json(orient='records')
'[{"col 1":"a","col 2":"b"},{"col 1":"c","col 2":"d"}]'
>>> pd.read_json(_, orient='records')
  col 1 col 2
0     a     b
1     c     d

Кодирование со схемой таблицы

>>> df.to_json(orient='table')
    '{"schema":{"fields":[{"name":"index","type":"string"},{"name":"col 1","type":"string"},{"name":"col 2","type":"string"}],"primaryKey":["index"],"pandas_version":"1.4.0"},"data":[{"index":"row 1","col 1":"a","col 2":"b"},{"index":"row 2","col 1":"c","col 2":"d"}]}'

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.5.0/reference/api/pandas.read_json.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API