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с литеральным именем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":"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