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, lines=False, compression='infer', index=None, indent=None, storage_options=None, mode='w')[source]
-
Преобразовать объект в строку JSON.
Обратите внимание, что значения NaN и None будут преобразованы в null, а объекты datetime будут преобразованы в метки времени Unix.
- Параметры:
-
- path_or_buf:строка, объект пути, объект-подобный файлу или None, по умолчанию None
-
Строка, объект пути (реализующий os.PathLike[str]) или объект-подобный файлу, реализующий функцию write(). Если None, результат возвращается как строка.
- orient:строка
-
Указание ожидаемого формата строки JSON.
-
Series:
по умолчанию ‘index’
допустимые значения: {‘split’, ‘records’, ‘index’, ‘table’}.
-
DataFrame:
по умолчанию ‘columns’
допустимые значения: {‘split’, ‘records’, ‘index’, ‘columns’, ‘values’, ‘table’}.
-
Формат строки JSON:
‘split’ : словарь, подобный {‘index’ -> [индекс], ‘columns’ -> [колонки], ‘data’ -> [значения]}
‘records’ : список, подобный [{колонка -> значение}, … , {колонка -> значение}]
‘index’ : словарь, подобный {индекс -> {колонка -> значение}}
‘columns’ : словарь, подобный {колонка -> {индекс -> значение}}
‘values’ : просто массив значений
‘table’ : словарь, подобный {‘schema’: {схема}, ‘data’: {данные}}
Описание данных, где компонент данных подобен
orient='records'.
-
- date_format:{None, ‘epoch’, ‘iso’}
-
Тип преобразования даты. ‘epoch’ = метки времени в миллисекундах, ‘iso’ = ISO8601. По умолчанию зависит от orient. Для
orient='table', по умолчанию ‘iso’. Для всех других orient, по умолчанию ‘epoch’. - double_precision:целое число, по умолчанию 10
-
Количество десятичных знаков для кодирования числовых значений с плавающей точкой. Максимальное возможное значение равно 15. Передача double_precision больше 15 вызовет ValueError.
- force_ascii:булево значение, по умолчанию True
-
Принудительно закодировать строку в ASCII.
- date_unit:строка, по умолчанию ‘ms’ (миллисекунды)
-
Единица измерения времени для кодирования, управляет точностью метки времени и ISO8601. Одно из значений ‘s’, ‘ms’, ‘us’, ‘ns’ для секунды, миллисекунды, микросекунды и наносекунды соответственно.
- default_handler:вызываемый объект, по умолчанию None
-
Обработчик вызова, если объект не может быть преобразован в подходящий формат для JSON. Должен принять в качестве аргумента единственный аргумент, который является объектом для преобразования, и вернуть сериализуемый объект.
- lines:булево значение, по умолчанию 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}. - index:булево значение или None, по умолчанию None
-
Индекс используется только тогда, когда ‘orient’ равен ‘split’, ‘index’, ‘column’ или ‘table’. Из этих, ‘index’ и ‘column’ не поддерживают index=False.
- indent:целое число, необязательно
-
Длина пробелов, используемых для отступа каждого запися.
- storage_options:словарь, необязательно
-
Дополнительные параметры, которые имеют смысл для определенного подключения к хранилищу, например, хост, порт, имя пользователя, пароль и т. д. Для HTTP(S) URL пары ключ-значение передаются в
urllib.request.Requestв качестве параметров заголовка. Для других URL (например, начинающихся с “s3://”, и “gcs://”) пары ключ-значение передаются вfsspec.open. Пожалуйста, см.fsspecиurllibдля более подробной информации, и для дополнительных примеров по параметрам хранения см. здесь. - mode:строка, по умолчанию ‘w’ (запись)
-
Укажите режим ввода-вывода для вывода при предоставлении path_or_buf. Принимаются только ‘w’ (запись) и ‘a’ (добавление). mode=’a’ поддерживается только тогда, когда lines равно True и orient равно ‘records’.
- Возвращает:
-
- None или строка
-
Если path_or_buf равно None, возвращает полученный формат json в виде строки. В противном случае возвращает None.
См. также
read_json-
Преобразовать строку JSON в объект pandas.
Примечания
Поведение
indent=0отличается от stdlib, который не отступает вывод, но вставляет новые строки. В настоящее время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 с использованием JSON в формате
'records'. Обратите внимание, что метки индексов не сохраняются при этом кодировании.>>> 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 с использованием JSON в формате
'index':>>> 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 с использованием JSON в формате
'columns':>>> 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 с использованием JSON в формате
'values':>>> result = df.to_json(orient="values") >>> parsed = loads(result) >>> dumps(parsed, indent=4) [ [ "a", "b" ], [ "c", "d" ] ]Кодирование со схемой таблицы:
>>> 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" } ] }
© 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/2.2.2/reference/api/pandas.Series.to_json.html