Spec-Zone.ru › pandas 1

pandas.DataFrame.to_json

DataFrame.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.

Параметры
path_or_buf:строка, объект пути, объект типа file-like или None, по умолчанию None

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

orient:строка

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

  • Series:

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

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

  • DataFrame:

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

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

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

    • ‘split’ : dict, похожий на {‘index’ -> [индекс], ‘columns’ -> [столбцы], ‘data’ -> [значения]}

    • ‘records’ : список, похожий на [{столбец -> значение}, … , {столбец -> значение}]

    • ‘index’ : dict, похожий на {индекс -> {столбец -> значение}}

    • ‘columns’ : dict, похожий на {столбец -> {индекс -> значение}}

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

    • ‘table’ : dict, похожий на {‘schema’: {схема}, ‘data’: {данные}}

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

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

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

double_precision:целое число, по умолчанию 10

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

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', 'tar'} и другие пары ключ-значение передаются в zipfile.ZipFile, gzip.GzipFile, bz2.BZ2File, zstandard.ZstdCompressor или tarfile.TarFile, соответственно. Например, следующее можно передать для более быстрого сжатия и создания воспроизводимого gzip-архива: compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}.

Новый в версии 1.5.0: Добавлена поддержка файлов .tar.

Изменено в версии 1.4.0: Поддержка Zstandard.

index:булево значение, по умолчанию True

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

indent:целое число, необязательно

Длина пробелов, используемых для отступа каждого записи.

Новый в версии 1.0.0.

storage_options:словарь, необязательно

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

Новый в версии 1.2.0.

Возвращает
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, используемую в последнем пересмотре схемы.

Примеры

>>> 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.DataFrame.to_json.html

Spec-Zone.ru

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