用法:
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_buf:str,路径对象,file-like 对象,或无,默认无
字符串、路径对象(实现 os.PathLike[str])或实现 write() 函数的 file-like 对象。如果为 None,则结果以字符串形式返回。
- orient:str
指示预期的 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_unit:str,默认 ‘ms’(毫秒)
编码到的时间单位,控制时间戳和 ISO8601 精度。 ‘s’, ‘ms’, ‘us’, ‘ns’ 之一,分别表示秒、毫秒、微秒和纳秒。
- default_handler:可调用,默认无
如果对象无法以其他方式转换为适合 JSON 的格式,则调用处理程序。应该接收一个参数,该参数是要转换的对象并返回一个可序列化的对象。
- lines:布尔值,默认为 False
如果 ‘orient’ 是 ‘records’ 则写出 line-delimited json 格式。如果不正确 ‘orient’ 将抛出 ValueError,因为其他不是 list-like。
- compression:str 或 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
。有关详细信息,请参阅fsspec
和urllib
。
- 无或字符串
如果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" } ] }
相关用法
- Python pandas.Series.to_csv用法及代码示例
- Python pandas.Series.to_pickle用法及代码示例
- Python pandas.Series.to_xarray用法及代码示例
- Python pandas.Series.to_markdown用法及代码示例
- Python pandas.Series.to_excel用法及代码示例
- Python pandas.Series.to_numpy用法及代码示例
- Python pandas.Series.to_latex用法及代码示例
- Python pandas.Series.to_hdf用法及代码示例
- Python pandas.Series.to_sql用法及代码示例
- Python pandas.Series.to_frame用法及代码示例
- Python pandas.Series.to_dict用法及代码示例
- Python pandas.Series.to_clipboard用法及代码示例
- Python pandas.Series.truediv用法及代码示例
- Python pandas.Series.take用法及代码示例
- Python pandas.Series.tz_localize用法及代码示例
- Python pandas.Series.tail用法及代码示例
- Python pandas.Series.truncate用法及代码示例
- Python pandas.Series.transform用法及代码示例
- Python pandas.Series.add_prefix用法及代码示例
- Python pandas.Series.map用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.Series.to_json。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。