Excel中使用Python:如何访问Power Query导入的JSON文件记录
解决Excel中通过Power Query加载的Record类型JSON数据的Python访问问题
步骤1:将Power Query的Record数据转为Python可识别格式
Power Query加载的[Record]是专属结构化对象,无法直接被Excel的Python引擎读取。要保留嵌套结构的同时突破单元格字符限制,先在Power Query编辑器里把Record序列化为JSON字符串:
- 打开Power Query编辑器,选中包含
[Record]的列 - 添加自定义列,输入公式
Json.FromValue([你的Record列名]),将Record转为完整的JSON文本 - 关闭编辑器并上载数据到Excel工作表,此时该列的JSON文本不受单个单元格32K字符限制
步骤2:用Excel Python读取并处理JSON数据
在Excel的Python单元格中,通过pandas读取数据,再用json模块解析嵌套结构:
import json import pandas as pd # 读取工作表数据,替换为你的工作簿和工作表名称 df = pd.read_excel("你的工作簿名称.xlsx", sheet_name="Sheet1") # 解析JSON列,替换"SerializedJSON"为你实际的列名 df["ParsedJSON"] = df["SerializedJSON"].apply(lambda x: json.loads(x)) # 示例:提取嵌套字段,比如从ParsedJSON中取"user"下的"name" df["UserName"] = df["ParsedJSON"].apply(lambda x: x.get("user", {}).get("name")) # 可选:将处理后的数据写回Excel df.to_excel("处理后的数据.xlsx", index=False)
额外技巧:Power Query预处理减少Python工作量
如果只需要提取特定嵌套字段,可直接在Power Query中展开Record:
- 点击
[Record]列旁的展开按钮,选择需要的字段展开为单独列 - 上载后Python可直接读取展开后的表格,无需再解析JSON
内容的提问来源于stack exchange,提问作者Chris Seeling
相关产品推荐
相关产品推荐

