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'.
- разрешённые значения orient —
- когда
typ == 'frame',- разрешённые значения orient —
{'split','records','index', 'columns','values', 'table'} - значение по умолчанию —
'columns' - Индекс DataFrame должен быть уникальным для значений orient
'index'и'columns'. - Столбцы DataFrame должны быть уникальными для значений orient
'index','columns', и'records'.
- разрешённые значения orient —
Новое в версии 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с буквальным именемIndexindexзаписывается с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