Spec-Zone.ru › pandas 0.25

pandas.read_json

pandas.read_json(path_or_buf=None, 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, lines=False, chunksize=None, compression='infer') [source]

Преобразование JSON-строки в объект pandas.

Параметры:
path_or_buf : a valid JSON str, path object or file-like object

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

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

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

orient : string,

Указание ожидаемого формата 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'.

Новое в версии 0.23.0: ‘table’ как допустимое значение для аргумента orient

typ : {‘frame’, ‘series’}, default ‘frame’

Тип восстанавливаемого объекта.

dtype : bool or dict, default None

Если True, тип данных (dtypes) инферируются, если это словарь «столбец» → «тип данных», используются эти значения, если False, тип данных не инферируется вообще, применяется только к данным.

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

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

convert_axes : bool, default None

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

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

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

convert_dates : bool or list of str, default True

Список столбцов для разбора дат. Если True, тогда попытаться разобрать столбцы, похожие на дату. Столбец похож на дату, если

  • он оканчивается на '_at',
  • он оканчивается на '_time',
  • он начинается с 'timestamp',
  • он является 'modified', или
  • он является 'date'.
keep_default_dates : bool, default True

Если разбирать даты, то разобрать столбцы по умолчанию, похожие на дату.

numpy : bool, default False

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

precise_float : bool, default False

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

date_unit : str, default None

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

encoding : str, default is ‘utf-8’

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

Новое в версии 0.19.0.

lines : bool, default False

Чтение файла как объекта JSON на строку.

Новое в версии 0.19.0.

chunksize : int, optional

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

Новое в версии 0.21.0.

compression : {‘infer’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None}, default ‘infer’

Для динамического сжатия данных на диске. Если ‘infer’, то использовать gzip, bz2, zip или xz, если путь path_or_buf является строкой, оканчивающейся на ‘.gz’, ‘.bz2’, ‘.zip’ или ‘xz’ соответственно, и без сжатия в противном случае. Если используется ‘zip’, ZIP-файл должен содержать только один файл данных для чтения. Установите в None для отключения сжатия.

Новое в версии 0.21.0.

Возвращает:
Series или DataFrame

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

См. также

DataFrame.to_json
Преобразование DataFrame в JSON-строку.
Series.to_json
Преобразование Series в 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": "0.20.0"},
    "data": [{"index": "row 1", "col 1": "a", "col 2": "b"},
            {"index": "row 2", "col 1": "c", "col 2": "d"}]}'

© 2008–2012, 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/0.25.0/reference/api/pandas.read_json.html

Spec-Zone.ru

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