1. 程式人生 > 其它 >Python 中將 Pandas DataFrame 轉換為 JSON?

Python 中將 Pandas DataFrame 轉換為 JSON?

Pandas DataFrames 是資料的表格表示,其中列代表單個數據條目中的各種資料點,每一行都是唯一的資料條目。而 JSON 是用 JavaScript 物件表示法編寫的文字。

將 Pandas DataFrame 轉換為 JSON

要將 Pandas DataFrames 轉換為 JSON 格式,我們使用DataFrame.to_json()Python 中Pandas庫中的函式to_json 函式中有多個自定義項可用於實現所需的 JSON 格式。看一下函式接受的引數,再探討定製

引數:

範圍價值
path_or_buf 字串或檔名,可選 檔案路徑或物件。
如果未指定,則結果作為字串返回。
東方 'split', 'records', 'index', 'columns', 'values', 'table', default='index' 指示預期的 JSON 字串格式。
日期格式 無,“紀元”,“iso”,預設 =“紀元” 日期轉換型別。'epoch' = 紀元毫秒,'iso' = ISO8601。預設值取決於方向。對於 orient='table',預設值為 'iso'。對於所有其他方向,預設值為 'epoch'。
雙精度 整數值,預設值=10 編碼浮點值時使用的小數位數。
force_ascii 布林值,預設值 = True
強制編碼字串為 ASCII。
日期_單位 's', 'ms', 'us', 'ns', default='ms' 要編碼到的時間單位控制時間戳和 ISO8601 精度。這些值分別代表秒、毫秒、微秒和納秒。
預設處理程式 可呼叫函式 如果物件無法以其他方式轉換為適用於 JSON 的格式,則要呼叫的處理程式。應該接收一個引數,它是要轉換的物件並返回一個可序列化的物件。
布林值,預設值 = False 如果 'orient' 是 'records' 寫出行分隔的 json 格式。如果 'orient' 不正確,則會丟擲 ValueError,因為其他人不是這樣的。
壓縮 'infer', 'gzip', 'bz2', 'zip', 'xz', None, default='infer'
表示在輸出檔案中使用的壓縮的字串,僅在第一個引數是檔名時使用。預設情況下,壓縮是從檔名推斷的。
指數 布林值,預設值 = True 是否在 JSON 字串中包含索引值。僅當 orient 為 'split' 或 'table' 時才支援不包括索引 (index=False)。
縮排 整數值 用於縮排每條記錄的空格長度。無需提及可選引數。

我們現在看幾個例子來理解函式DataFrame.to_json的用法。

示例 1:基本用法

import numpy as np import pandas as pd data = np.array([['1', '2'], ['3', '4']]) dataFrame = pd.DataFrame(data, columns = ['col1', 'col2']) json = dataFrame.to_json() print(json)

輸出 :

{"col1":{"0":"1", "1":"3"}, "col2":{"0":"2", "1":"4"}}

示例 2:探索 DataFrame.to_json 函式的 'orient' 屬性

import numpy as np
import pandas as pd
  
  
data = np.array([['1', '2'], ['3', '4']])
   
dataFrame = pd.DataFrame(data, columns = ['col1', 'col2'])
json = dataFrame.to_json()
print(json)
  
json_split = dataFrame.to_json(orient ='split')
print("json_split = ", json_split, "\n")
   
json_records = dataFrame.to_json(orient ='records')
print("json_records = ", json_records, "\n")
   
json_index = dataFrame.to_json(orient ='index')
print("json_index = ", json_index, "\n")
   
json_columns = dataFrame.to_json(orient ='columns')
print("json_columns = ", json_columns, "\n")
   
json_values = dataFrame.to_json(orient ='values')
print("json_values = ", json_values, "\n")
   
json_table = dataFrame.to_json(orient ='table')
print("json_table = ", json_table, "\n")

輸出 :

json_split = {“columns”:[“col1”, “col2”], “index”:[0, 1], “data”:[[“1”, “2”], [“3”, “4”]]}

json_records = [{“col1″:”1”, “col2″:”2”}, {“col1″:”3”, “col2″:”4”}]

json_index = {“0”:{“col1″:”1”, “col2″:”2”}, “1”:{“col1″:”3”, “col2″:”4”}}

json_columns = {“col1”:{“0″:”1”, “1”:”3″}, “col2”:{“0″:”2”, “1”:”4″}}

json_values = [[“1”, “2”], [“3”, “4”]]

json_table = {“schema”:{“fields”:[{“name”:”index”, “type”:”integer”}, {“name”:”col1″, “type”:”string”}, {“name”:”col2″, “type”:”string”}], “primaryKey”:[“index”], “pandas_version”:”0.20.0″}, “data”:[{“index”:0, “col1″:”1”, “col2″:”2”}, {“index”:1, “col1″:”3”, “col2″:”4”}]}