pandas.read_json
-
pandas.read_json(path_or_buf=None, orient=None, typ='frame', dtype=True, convert_axes=True, 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 : допустимая строка JSON или файлоподобный объект, по умолчанию: None
Строка может быть URL. Допустимые схемы URL включают http, ftp, s3 и file. Для URL файлов ожидается хост. Например, локальный файл может быть
file://localhost/path/to/table.jsonorient : строка,
Указание ожидаемого формата строки 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 : type of object to recover (series or frame), default ‘frame’
dtype : boolean или словарь, по умолчанию True
Если True, определить типы данных, если словарь столбец-тип данных, то использовать их, если False, то не определять типы данных вообще, относится только к данным.
convert_axes : boolean, по умолчанию True
Попытка преобразовать оси в соответствующие типы данных.
convert_dates : boolean, по умолчанию True
Список столбцов для анализа дат; Если True, то попытаться проанализировать столбцы, похожие на даты, значение по умолчанию — True; столбец подобен дате, если
- он оканчивается на
'_at', - он оканчивается на
'_time', - он начинается с
'timestamp', - он —
'modified', или - он —
'date'
keep_default_dates : boolean, по умолчанию True
Если анализируются даты, то анализируются столбцы по умолчанию, подобные датам
numpy : boolean, по умолчанию False
Прямое декодирование в массивы numpy. Поддерживаются только числовые данные, но поддерживаются нечисловые метки столбцов и индексов. Обратите также внимание, что порядок JSON ДОЛЖЕН быть одинаковым для каждого термина, если numpy=True.
precise_float : boolean, по умолчанию False
Устанавливается для использования функции с большей точностью (strtod) при декодировании строк в значения double. По умолчанию (False) используется быстрая, но менее точная встроенная функция
date_unit : строка, по умолчанию None
Единица временной метки для определения преобразования дат. По умолчанию поведение заключается в попытке определить правильную точность, но если это не нужно, передайте одно из ‘s’, ‘ms’, ‘us’ или ‘ns’, чтобы принудительно анализировать только секунды, миллисекунды, микросекунды или наносекунды соответственно.
lines : boolean, по умолчанию False
Чтение файла как объекта json на каждой строке.
Новое в версии 0.19.0.
encoding : str, по умолчанию ‘utf-8’
Кодировка, используемая для декодирования py3 байтов.
Новое в версии 0.19.0.
chunksize: целое число, по умолчанию None
Возвращает объект JsonReader для итерации. См. документацию по JSON-файлам с разделителями строк для получения дополнительной информации о
chunksize. Это можно передать только еслиlines=True. Если это None, файл будет считаться в память сразу.Новое в версии 0.21.0.
compression : {‘infer’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None}, по умолчанию ‘infer’
Для сжатия на лету данных на диске. Если ‘infer’, то использовать gzip, bz2, zip или xz, если path_or_buf — строка, заканчивающаяся на ‘.gz’, ‘.bz2’, ‘.zip’ или ‘xz’ соответственно, и без сжатия в противном случае. При использовании ‘zip’, ZIP-файл должен содержать только один файл данных, который будет считываться. Установите значение None для отказа от сжатия.
Новое в версии 0.21.0.
Возвращает: -
result : Series or DataFrame, depending on the value of typ.
См. также
Примечания
-
Специфично для
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.23.4/generated/pandas.read_json.html