pandas.Series.to_json#
- Series.to_json(path_or_buf=None, *, orient=None, date_format=None, double_precision=10, force_ascii=True, date_unit='ms', default_handler=None, строки=False, compression='infer', index=None, отступ=None, storage_options=None, mode='w')[источник]#
Преобразовать объект в строку JSON.
Примечание: NaN и None будут преобразованы в null, а объекты datetime будут преобразованы в UNIX-метки времени.
- Параметры:
- path_or_bufstr, объект пути, файлоподобный объект или None, по умолчанию None
Строка, объект пути (реализующий os.PathLike[str]) или файлоподобный объект, реализующий функцию write(). Если None, результат возвращается как строка.
- orientstr
Указание ожидаемого формата JSON-строки.
Series:
по умолчанию 'index'
допустимые значения: {‘split’, ‘records’, ‘index’, ‘table’}.
DataFrame:
по умолчанию 'columns'
допустимые значения: {‘split’, ‘records’, ‘index’, ‘columns’, ‘values’, ‘table’}.
Формат строки JSON:
‘split’ : dict like {‘index’ -> [index], ‘columns’ -> [columns], ‘data’ -> [values]}
'records' : список вида [{column -> value}, … , {column -> value}]
'index' : словарь вида {index -> {column -> value}}
‘columns’ : dict like {column -> {index -> value}}
‘values’ : только массив значений
'table' : словарь вида {'schema': {schema}, 'data': {data}}
Описание данных, где компонент данных подобен
orient='records'.
- date_format{None, 'epoch', 'iso'}
Тип преобразования даты. 'epoch' = эпоха в миллисекундах, 'iso' = ISO8601. По умолчанию зависит от orient. Для
orient='table', по умолчанию 'iso'. Для всех других ориентаций, по умолчанию 'epoch'.- double_precisionint, по умолчанию 10
Количество знаков после запятой для использования при кодировании значений с плавающей точкой. Максимально возможное значение - 15. Передача double_precision больше 15 вызовет ValueError.
- force_asciibool, по умолчанию True
Принудительное преобразование закодированной строки в ASCII.
- date_unitstr, по умолчанию 'ms' (миллисекунды)
Единица времени для кодирования, определяет точность временной метки и ISO8601. Одна из ‘s’, ‘ms’, ‘us’, ‘ns’ для секунд, миллисекунд, микросекунд и наносекунд соответственно.
- default_handlerвызываемый объект, по умолчанию None
Обработчик для вызова, если объект не может быть преобразован в подходящий формат для JSON. Должен принимать один аргумент — объект для преобразования — и возвращать сериализуемый объект.
- строкиbool, по умолчанию False
Если 'orient' равен 'records', записывает формат json с разделением по строкам. Выбросит ValueError, если 'orient' некорректен, так как другие не являются подобными списку.
- compressionстрока или словарь, по умолчанию ‘infer’
Для сжатия выходных данных на лету. Если 'infer' и 'path_or_buf' является путем, то определить сжатие по следующим расширениям: '.gz', '.bz2', '.zip', '.xz', '.zst', '.tar', '.tar.gz', '.tar.xz' или '.tar.bz2' (в противном случае без сжатия). Установить в
Noneбез сжатия. Также может быть словарем с ключом'method'установить в одно из {'zip','gzip','bz2','zstd','xz','tar'} и другие пары ключ-значение передаются вzipfile.ZipFile,gzip.GzipFile,bz2.BZ2File,zstandard.ZstdCompressor,lzma.LZMAFileилиtarfile.TarFile, соответственно. Например, для ускорения сжатия и создания воспроизводимого gzip-архива можно передать:compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}.Добавлено в версии 1.5.0: Добавлена поддержка для .tar файлы.
Изменено в версии 1.4.0: Поддержка Zstandard.
- indexbool или None, по умолчанию None
Индекс используется только когда 'orient' имеет значение 'split', 'index', 'column' или 'table'. Из них 'index' и 'column' не поддерживают index=False.
- отступint, необязательный
Длина пробела, используемого для отступа каждой записи.
- storage_optionsdict, optional
Дополнительные параметры, которые имеют смысл для конкретного соединения с хранилищем, например, хост, порт, имя пользователя, пароль и т.д. Для HTTP(S) URL пары ключ-значение передаются в
urllib.request.Requestв качестве параметров заголовка. Для других URL-адресов (например, начинающихся с "s3://" и "gcs://") пары ключ-значение передаютсяfsspec.open. Пожалуйста, смотритеfsspecиurllibдля получения дополнительной информации, а для дополнительных примеров по опциям хранения см. здесь.- modestr, по умолчанию ‘w’ (запись)
Укажите режим ввода-вывода для вывода при предоставлении path_or_buf. Допустимые аргументы: только 'w' (запись) и 'a' (добавление). Режим='a' поддерживается только когда lines=True и orient='records'.
- Возвращает:
- None или str
Если path_or_buf равен None, возвращает результирующий json-формат в виде строки. В противном случае возвращает None.
Смотрите также
read_jsonПреобразовать строку JSON в объект pandas.
Примечания
Поведение
indent=0отличается от стандартной библиотеки, которая не делает отступы в выводе, но вставляет переводы строк. В настоящее время,indent=0и значение по умолчаниюindent=Noneэквивалентны в pandas, хотя это может измениться в будущем релизе.orient='table'содержит поле 'pandas_version' в разделе 'schema'. Оно хранит версию pandas используется в последней версии схемы.Примеры
>>> from json import loads, dumps >>> df = pd.DataFrame( ... [["a", "b"], ["c", "d"]], ... index=["row 1", "row 2"], ... columns=["col 1", "col 2"], ... )
>>> result = df.to_json(orient="split") >>> parsed = loads(result) >>> dumps(parsed, indent=4) { "columns": [ "col 1", "col 2" ], "index": [ "row 1", "row 2" ], "data": [ [ "a", "b" ], [ "c", "d" ] ] }
Кодирование/декодирование Dataframe с использованием
'records'форматированный JSON. Обратите внимание, что метки индекса не сохраняются при таком кодировании.>>> result = df.to_json(orient="records") >>> parsed = loads(result) >>> dumps(parsed, indent=4) [ { "col 1": "a", "col 2": "b" }, { "col 1": "c", "col 2": "d" } ]
Кодирование/декодирование Dataframe с использованием
'index'форматированный JSON:>>> result = df.to_json(orient="index") >>> parsed = loads(result) >>> dumps(parsed, indent=4) { "row 1": { "col 1": "a", "col 2": "b" }, "row 2": { "col 1": "c", "col 2": "d" } }
Кодирование/декодирование Dataframe с использованием
'columns'форматированный JSON:>>> result = df.to_json(orient="columns") >>> parsed = loads(result) >>> dumps(parsed, indent=4) { "col 1": { "row 1": "a", "row 2": "c" }, "col 2": { "row 1": "b", "row 2": "d" } }
Кодирование/декодирование Dataframe с использованием
'values'форматированный JSON:>>> result = df.to_json(orient="values") >>> parsed = loads(result) >>> dumps(parsed, indent=4) [ [ "a", "b" ], [ "c", "d" ] ]
Кодирование с использованием Table Schema:
>>> result = df.to_json(orient="table") >>> parsed = loads(result) >>> dumps(parsed, indent=4) { "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" } ] }