翻译|行业资讯|编辑:吉炜炜|2025-09-01 14:01:44.487|阅读 10 次
概述: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@evget.com
文章转载自:慧都网