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) [source]
将对象转换为JSON
字符串。
注意:NaN
和None
将被转换为null
, datetime
对象将被转换为UNIX时间戳。
参数: | path_or_buf : 文件路径或对象。如果未指定,则结果以字符串形式返回。 orient : 预期的JSON字符串格式的指示。 1) Series: 默认值为 允许的值为: 2) DataFrame: 默认为 允许的值为:
3) JSON字符串格式:
描述数据,其中数据成分类似于 在版本0.20.0中更改。 date_format : 日期转换的类型。
对于 对于所有其他东方,默认值为 double_precision : 在对浮点值进行编码时要使用的小数位数。 force_ascii : 强制将字符串编码为 date_unit : 要编码的时间单位,控制时间戳和ISO8601精度。
default_handler :callable, 默认为 如果对象不能转换为适合JSON的格式,则调用。 应该接收一个参数,该参数是要转换的对象并返回一个可序列化对象。 lines : 如果 如果不正确的 compression : 表示要在输出文件中使用的压缩的字符串, 仅在第一个参数是文件名时使用。默认情况下, 压缩是从文件名推断出来的。 在0.24.0版本中更改:增加了 index : 是否在JSON字符串中包括索引值。 仅当 才支持不包括index( 0.23.0版中的新功能。 indent : 用于缩进每条记录的空白长度。 1.0.0版的新功能。。 |
返回值: |
如果 则将生成的 否则返回 |
Notes
indent=0
的行为与stdlib不同,stdlib不会缩进输出,但会插入新行。目前,在panda中,indent=0
和默认的indent=None
是等价的,不过在将来的版本中可能会更改。
例子
>>> 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": "0.20.0"
},
"data": [
{
"index": "row 1",
"col 1": "a",
"col 2": "b"
},
{
"index": "row 2",
"col 1": "c",
"col 2": "d"
}
]
}