Spec-Zone.ru › pandas 2

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

Spec-Zone.ru

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