用法:
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)
將對象轉換為 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.DataFrame.to_numpy用法及代碼示例
- Python pandas.DataFrame.to_markdown用法及代碼示例
- Python pandas.DataFrame.to_sql用法及代碼示例
- Python pandas.DataFrame.to_xml用法及代碼示例
- Python pandas.DataFrame.to_latex用法及代碼示例
- Python pandas.DataFrame.to_pickle用法及代碼示例
- Python pandas.DataFrame.to_string用法及代碼示例
- Python pandas.DataFrame.to_csv用法及代碼示例
- Python pandas.DataFrame.to_dict用法及代碼示例
- Python pandas.DataFrame.to_clipboard用法及代碼示例
- Python pandas.DataFrame.to_hdf用法及代碼示例
- Python pandas.DataFrame.to_excel用法及代碼示例
- Python pandas.DataFrame.to_records用法及代碼示例
- Python pandas.DataFrame.to_stata用法及代碼示例
- Python pandas.DataFrame.to_parquet用法及代碼示例
- Python pandas.DataFrame.to_xarray用法及代碼示例
- Python pandas.DataFrame.to_period用法及代碼示例
- Python pandas.DataFrame.truncate用法及代碼示例
- Python pandas.DataFrame.transpose用法及代碼示例
- Python pandas.DataFrame.transform用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.to_json。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。