当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python 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)

将对象转换为 JSON 字符串。

注意 NaN 和 None 将被转换为 null,而 datetime 对象将被转换为 UNIX 时间戳。

参数

path_or_bufstr,路径对象,file-like 对象,或无,默认无

字符串、路径对象(实现 os.PathLike[str])或实现 write() 函数的 file-like 对象。如果为 None,则结果以字符串形式返回。

orientstr

指示预期的 JSON 字符串格式。

  • 系列:

    • default is ‘index’

    • allowed values are:{‘split’, ‘records’, ‘index’, ‘table’}.

  • DataFrame :

    • default is ‘columns’

    • allowed values are:{‘split’, ‘records’, ‘index’, ‘columns’, ‘values’, ‘table’}.

  • JSON字符串的格式:

    • ‘split’:dict like {‘index’ -> [index], ‘columns’ -> [columns], ‘data’ -> [values]}

    • ‘records’:list like [{column -> value}, … , {column -> value}]

    • ‘index’:dict like {index -> {column -> value}}

    • ‘columns’:dict like {column -> {index -> value}}

    • ‘values’:just the values array

    • ‘table’:dict like {‘schema’:{schema}, ‘data’:{data}}

    Describing the data, where data component is like orient='records'.

date_format{无,‘epoch’, ‘iso’}

日期转换的类型。 ‘epoch’ = 纪元毫秒,‘iso’ = ISO8601。默认值取决于 orient 。对于 orient='table' ,默认值为 ‘iso’。对于所有其他方向,默认值为‘epoch’。

double_precision整数,默认 10

编码浮点值时使用的小数位数。

force_ascii布尔值,默认为真

强制编码字符串为 ASCII。

date_unitstr,默认 ‘ms’(毫秒)

编码到的时间单位,控制时间戳和 ISO8601 精度。 ‘s’, ‘ms’, ‘us’, ‘ns’ 之一,分别表示秒、毫秒、微秒和纳秒。

default_handler可调用,默认无

如果对象无法以其他方式转换为适合 JSON 的格式,则调用处理程序。应该接收一个参数,该参数是要转换的对象并返回一个可序列化的对象。

lines布尔值,默认为 False

如果 ‘orient’ 是 ‘records’ 则写出 line-delimited json 格式。如果不正确 ‘orient’ 将抛出 ValueError,因为其他不是 list-like。

compressionstr 或 dict,默认 ‘infer’

用于输出数据的即时压缩。如果 ‘infer’ 和 ‘path_or_buf’ path-like,则检测来自以下扩展名的压缩:'.gz'、'.bz2'、'.zip'、'.xz' 或 '.zst'(否则不压缩) .调成None无压缩。也可以是带键的字典'method'设置为 { 之一'zip','gzip','bz2','zstd'} 和其他键值对被转发到zipfile.ZipFile,gzip.GzipFile,bz2.BZ2File, 或者zstandard.ZstdDecompressor, 分别。例如,可以传递以下内容以加快压缩速度并创建可重现的 gzip 存档:compression={'method':'gzip', 'compresslevel':1, 'mtime':1}.

index布尔值,默认为真

是否在 JSON 字符串中包含索引值。仅当 orient 为 ‘split’ or ‘table’ 时才支持不包括索引 (index=False)。

indent整数,可选

用于缩进每条记录的空白长度。

storage_options字典,可选

对特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对作为标头选项转发到 urllib。对于其他 URL(例如以 “s3://” 和 “gcs://” 开头),键值对被转发到 fsspec 。有关详细信息,请参阅fsspecurllib

返回

无或字符串

如果path_or_buf 为无,则将生成的 json 格式作为字符串返回。否则返回无。

注意

indent=0 的行为与标准库不同,标准库不缩进输出但插入换行符。目前,indent=0 和默认的 indent=None 在 pandas 中是等效的,尽管这可能会在未来的版本中改变。

orient='table' 在‘schema’ 下包含一个‘pandas_version’ 字段。这存储了架构的最新版本中使用的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"
        ]
    ]
}

使用 'records' 格式的 JSON 编码/解码数据帧。请注意,此编码不会保留索引标签。

>>> 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"
    }
]

使用 'index' 格式的 JSON 编码/解码数据帧:

>>> 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"
    }
}

使用 'columns' 格式的 JSON 编码/解码数据帧:

>>> 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"
    }
}

使用 'values' 格式的 JSON 编码/解码数据帧:

>>> 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"
        }
    ]
}

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.Series.to_json。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。