Spec-Zone.ru › pandas 1

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=True, indent=None, storage_options=None)[source]

Преобразование объекта в строку JSON.

Обратите внимание, что NaN и None будут преобразованы в null, а объекты datetime - в временные метки Unix.

Parameters
path_or_buf:str, path object, file-like object, or None, default None

Строка, объект пути (реализующий os.PathLike[str]) или объек file-like, реализующий функцию write(). Если None, результат возвращается как строка.

orient:str

Указание ожидаемого формата строки JSON.

  • Series:

    • По умолчанию ‘index’

    • допустимые значения: {‘split’, ‘records’, ‘index’, ‘table’}.

  • DataFrame:

    • По умолчанию ‘columns’

    • допустимые значения: {‘split’, ‘records’, ‘index’, ‘columns’, ‘values’, ‘table’}.

  • Формат строки JSON:

    • ‘split’ : dict подобный {‘index’ -> [index], ‘columns’ -> [columns], ‘data’ -> [values]}

    • ‘records’ : список подобный [{column -> value}, … , {column -> value}]

    • ‘index’ : dict подобный {index -> {column -> value}}

    • ‘columns’ : dict подобный {column -> {index -> value}}

    • ‘values’ : только массив значений

    • ‘table’ : dict подобный {‘schema’: {schema}, ‘data’: {data}}

    Описание данных, где компонент данных похож на orient='records'.

date_format:{None, ‘epoch’, ‘iso’}

Тип преобразования даты. ‘epoch’ = эпоха в миллисекундах, ‘iso’ = ISO8601. По умолчанию зависит от orient. Для orient='table', по умолчанию ‘iso’. Для всех других ориентаций по умолчанию ‘epoch’.

double_precision:int, default 10

Количество десятичных знаков для кодирования чисел с плавающей точкой.

force_ascii:bool, default True

Принудительно кодировать строку в ASCII.

date_unit:str, default ‘ms’ (milliseconds)

Единица времени для кодирования, управляет точностью временной метки и ISO8601. Один из ‘s’, ‘ms’, ‘us’, ‘ns’ для секунды, миллисекунды, микросекунды и наносекунды соответственно.

default_handler:callable, default None

Обработчик, который вызывается, если объект не может быть преобразован в подходящий формат для JSON. Должен принять один аргумент, который является объектом для преобразования, и вернуть сериализуемый объект.

lines:bool, default False

Если ‘orient’ равен ‘records’, записывать JSON в формате с разделителями строк. Вызовет ValueError, если неверный ‘orient’, так как другие не являются списком.

compression:str or dict, default ‘infer’

Для сжатия выходных данных на лету. Если ‘infer’ и ‘path_or_buf’ - путь, определить сжатие по расширениям: ‘.gz’, ‘.bz2’, ‘.zip’, ‘.xz’, ‘.zst’, ‘.tar’, ‘.tar.gz’, ‘.tar.xz’ или ‘.tar.bz2’ (иначе нет сжатия). Установить в None для отключения сжатия. Также может быть dict с ключом 'method', установленным в один из {'zip', 'gzip', 'bz2', 'zstd', 'tar'} и другие пары ключ-значение передаются zipfile.ZipFile, gzip.GzipFile, bz2.BZ2File, zstandard.ZstdCompressor или tarfile.TarFile, соответственно. Например, для более быстрого сжатия и создания воспроизводимого gzip-архива можно передать compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}.

index:bool, default True

Включать ли значения индекса в строку JSON. Исключение индекса (index=False) поддерживается только при orient ‘split’ или ‘table’.

indent:int, optional

Длина отступа, используемого для отступа каждой записи.

New in version 1.0.0.

storage_options:dict, optional

Дополнительные параметры, имеющие смысл для определенного подключения к хранилищу, например, хост, порт, имя пользователя, пароль и т. д. Для HTTP(S) URL-адресов пары ключ-значение передаются urllib.request.Request в качестве параметров заголовка. Для других URL-адресов (например, начинающихся с «s3://» и «gcs://») пары ключ-значение передаются в fsspec.open. Подробнее см. fsspec и urllib, а более подробные примеры параметров хранения см. здесь.

New in version 1.2.0.

Returns
None or str

Если path_or_buf равен None, возвращается результирующий формат JSON как строка. В противном случае возвращается None.

См. также

read_json

Преобразование строки JSON в объект pandas.

Notes

Поведение indent=0 отличается от stdlib, который не отступает вывод, но вставляет новые строки. В настоящее время indent=0 и значение по умолчанию indent=None эквивалентны в pandas, хотя это может измениться в будущих версиях.

orient='table' содержит поле ‘pandas_version’ в ‘schema’. Это хранит версию pandas, используемую в последнем пересмотре схемы.

Примеры

>>> import json
>>> df = pd.DataFrame(
...     [["a", "b"], ["c", "d"]],
...     index=["row 1", "row 2"],
...     columns=["col 1", "col 2"],
... )
>>> result = df.to_json(orient="split")
>>> parsed = json.loads(result)
>>> json.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 = json.loads(result)
>>> json.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 = json.loads(result)
>>> json.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 = json.loads(result)
>>> json.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 = json.loads(result)
>>> json.dumps(parsed, indent=4)  
[
    [
        "a",
        "b"
    ],
    [
        "c",
        "d"
    ]
]

Кодирование со схемой таблицы:

>>> result = df.to_json(orient="table")
>>> parsed = json.loads(result)
>>> json.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/1.5.0/reference/api/pandas.Series.to_json.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API