翻譯|行業資訊|編輯:吉煒煒|2025-09-01 14:01:44.487|閱讀 29 次
概述:Aspose.Cells for Python 提供了豐富的 JSON 到 Excel 轉換流程,您可以輕松地將其與 Pandas 集成,以獲取干凈的 DataFrame 進行分析。在本篇教程中,您將學習如何在 Python 中將 JSON 轉換為 Pandas DataFrame。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在數據分析、報告和 ETL 流程中,使用 JSON 和 Pandas DataFrame 非常常見。雖然 Pandas 提供了read_json基本的解析功能,但它在處理深度嵌套結構、超大文件或 Excel 優先工作流時可能會遇到困難。Aspose.Cells for Python 提供了豐富的 JSON 到 Excel 轉換流程,您可以輕松地將其與 Pandas 集成,以獲取干凈的 DataFrame 進行分析。在本篇教程中,您將學習如何在 Python 中將 JSON 轉換為 Pandas DataFrame。
加入Aspose技術交流QQ群(1041253375),與更多小伙伴一起探討提升開發技能。
Aspose.Cells for Python via .NET是一款功能強大的電子表格 API,無需 Microsoft Excel。除了傳統的 Excel 自動化功能外,它還支持直接導入和導出 JSON,非常適合將 JSON 轉換為 Pandas DataFrame,然后在 Excel 中保存或處理。
使用 Aspose.Cells,您可以:
簡而言之,該庫可以輕松地將數據從 JSON 格式遷移到 Excel 中用于報告,同時您可以使用 Pandas 進行更深入的分析。它將JsonUtilityJSON 導入工作表,并JsonLayoutOptions控制數組和嵌套對象的擴展方式。
Aspose.Cells 直接將 JSON 導入工作表。然后讀取標題行和數據行,構建 Pandas DataFrame。
按照以下步驟將 JSON 轉換為 pandas DataFrame:
以下代碼示例展示了如何在 Python 中將 JSON 轉換為 pandas DataFrame:
import pandas as pd import aspose.cells as ac # Create a new workbook and get the first worksheet (0-based index) wb = ac.Workbook() ws = wb.worksheets.get(0) # Configure how JSON should be laid out in the worksheet options = ac.utility.JsonLayoutOptions() options.array_as_table = True # Treat a top-level JSON array as a table (rows/columns) # Example JSON array of simple objects json_data = '[{"id":1,"name":"Alice"},{"id":2,"name":"Bob"}]' # Import JSON into the worksheet starting at row=0, col=0 (cell A1) ac.utility.JsonUtility.import_data(json_data, ws.cells, 0, 0, options) # Locate the first row that contains data (this will be our header row) header_idx = ws.cells.min_data_row # Extract header values from that row to use as DataFrame column names columns = [cell.value for cell in ws.cells.rows[header_idx]] # Extract all subsequent rows as data (skip the header row) data = [ [cell.value for cell in row] for idx, row in enumerate(ws.cells.rows) if row and idx != header_idx ] # Build the DataFrame using the collected headers and rows df = pd.DataFrame(data, columns=columns) # Display the result print(df)輸出:
id name 0 1.0 Alice 1 2.0 Bob
如果您的 JSON 包含嵌套對象,Aspose.Cells 會使用 JsonUtility 將 JSON 導入工作表,然后您可以將其導出到 DataFrame。JsonLayoutOptions 控制數組和嵌套對象的展開方式。
按照以下步驟將嵌套 JSON 轉換為 pandas DataFrame:
以下代碼示例展示了如何在 Python 中將嵌套 JSON 轉換為 pandas DataFrame:
import pandas as pd import aspose.cells as ac # Create Workbook and get first worksheet wb = ac.Workbook() ws = wb.worksheets.get(0) # Layout options for nested JSON opt = ac.utility.JsonLayoutOptions() opt.array_as_table = True # Treat 'orders' array as a table (rows) opt.ignore_array_title = True # Do not place a title row for the 'orders' array opt.ignore_object_title = True # Do not place extra title rows for nested objects (e.g., 'buyer') opt.kept_schema = True # Keep a stable set of columns even if some records miss fields # Step 3: Your nested JSON nested = ''' { "batch": "A1", "orders": [ {"orderId": "1001", "total": "49.90", "buyer": {"city": "NYC", "zip": "10001"}}, {"orderId": "1002", "total": "79.00", "buyer": {"city": "Boston", "zip": "02108"}} ] } ''' # Import at A1 (row=0, col=0) using the options above ac.utility.JsonUtility.import_data(nested, ws.cells, 0, 0, opt) # Detect used range first_row = ws.cells.min_data_row first_col = ws.cells.min_data_column last_row = ws.cells.max_data_row last_col = ws.cells.max_data_column # Read header row across the full used column span (fixed width) raw_columns = [ws.cells.get(first_row, c).value for c in range(first_col, last_col + 1)] # Make headers safe: replace None/blank with "Column{n}" and cast to str columns = [ (str(v) if v is not None and str(v).strip() != "" else f"Column{idx + 1}") for idx, v in enumerate(raw_columns) ] # Read data rows across the same span (fixed width guarantees alignment) data = [] for r in range(first_row + 1, last_row + 1): row_vals = [ws.cells.get(r, c).value for c in range(first_col, last_col + 1)] data.append(row_vals) # Build DataFrame df = pd.DataFrame(data, columns=columns) # Optional: tidy up column names (e.g., replace spaces) df.columns = [str(c).strip() for c in df.columns] # Optional typing: # - Keep ZIPs as strings (leading zeros matter) # - Convert totals to numeric (coerce non-numeric to NaN) for col in list(df.columns): if col.lower().endswith("total"): df[col] = pd.to_numeric(df[col], errors="coerce") # Print print(df)輸出:
A1 1001 49.90 NYC 10001 0 None 1002 79.00 Boston 02108
注意:如果啟用convert_numeric_or_date=True,看起來像數字的字符串(例如總數)可能會轉換為數字,但郵政編碼(例如)"02108"可能會丟失前導零。False如果您需要將郵政編碼轉換為字符串,請保留此選項。
使用 Aspose.Cells 將任意 Excel 范圍導出為 JSON,然后將該 JSON 作為 DataFrame 加載到 Pandas 中。當您需要為服務或管道進行結構化 JSON 交接時,此功能非常有用。
按照以下步驟通過 JSON 將 Excel 轉換為 pandas DataFrame:
以下代碼示例展示了如何在 Python 中通過 JSON 將 Excel 轉換為 pandas DataFrame:
import io import pandas as pd from aspose.cells.utility import JsonUtility # JSON export utility from aspose.cells import Workbook, JsonSaveOptions, License # Create a new workbook and access the first worksheet workbook = Workbook() worksheet = workbook.worksheets.get(0) # Get the cells of the worksheet cells = worksheet.cells # Populate a small table (headers + rows) cells.get("A1").value = "Name" cells.get("B1").value = "Age" cells.get("C1").value = "City" cells.get("A2").value = "Alice" cells.get("B2").value = 25 cells.get("C2").value = "New York" cells.get("A3").value = "Bob" cells.get("B3").value = 30 cells.get("C3").value = "San Francisco" cells.get("A4").value = "Charlie" cells.get("B4").value = 35 cells.get("C4").value = "Los Angeles" # Set up JSON save options (defaults are fine for a simple table) json_save_options = JsonSaveOptions() # Export the used range to a JSON string # max_display_range grabs the full rectangular region that contains data json_text = JsonUtility.export_range_to_json(cells.max_display_range, json_save_options) # Read the JSON string into a Pandas DataFrame # Pandas can parse a JSON string directly df = pd.read_json(io.StringIO(json_text)) # Use the DataFrame print(df)輸出:
Name Age City 0 Alice 25 New York 1 Bob 30 San Francisco 2 Charlie 35 Los Angeles
使用 Aspose.Cells for Python,將 JSON 轉換為 Pandas DataFrames 變得非常簡單。您可以獲得可靠的嵌套結構處理、模式穩定性選項,以及在需要時輕松導出到 Excel 的途徑。將 Pandas 的靈活性與 Aspose.Cells 中的 JSON/Excel 管道相結合,簡化數據處理并解鎖強大的 Python 分析功能。
————————————————————————————————————————
關于慧都科技:
慧都科技是專注軟件工程、智能制造、石油工程三大行業的數字化解決方案服務商。在軟件工程領域,我們提供開發控件、研發管理、代碼開發、部署運維等軟件開發全鏈路所需的產品,提供正版授權采購、技術選型、個性化維保等服務,幫助客戶實現技術合規、降本增效與風險可控。慧都科技Aspose在中國的官方授權代理商,提供Aspose系列產品免費試用,咨詢,正版銷售等于一體的專業化服務。Aspose是文檔處理領域的優秀產品,幫助企業高效構建文檔處理的應用程序。
下載|體驗更多Aspose產品,請咨詢,或撥打產品熱線:023-68661681
加入Aspose技術交流QQ群(1041253375),與更多小伙伴一起探討提升開發技能。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網