如何在Python中读取嵌套JSON?用pandas.json_normalize提取Contacts字段
解决嵌套JSON提取问题:用pandas json_normalize获取Contacts字段
我刚好处理过类似的Salesforce嵌套JSON解析需求,你的问题核心是Contacts字段本身是一个包含records数组的嵌套对象,直接用默认的json_normalize只会把Contacts当成一个整体列,没法提取里面的字段。下面是具体的解决方法:
核心思路
我们需要告诉json_normalize三个关键信息:
- 嵌套的Contact记录所在的路径(
record_path参数) - 需要保留哪些上层(Account)的字段(
meta参数) - 设置列名分隔符,让嵌套字段的列名变成
Contacts.Name这种格式(sep参数)
完整代码示例
import pandas as pd # 假设你的响应已经转成字典格式 r_dict = r.json() # 调用json_normalize解析嵌套结构 df = pd.json_normalize( data=r_dict['records'], record_path=['Contacts', 'records'], # 指定要解析的嵌套Contact记录路径 meta=[ 'Id', 'Name', 'BillingStreet', 'BillingCity', 'BillingState', 'BillingPostalCode', 'CPF_ou_CNPJ__c' ], # 保留Account层面的所有目标字段 sep='.' # 用"."分隔嵌套字段名,生成Contacts.Name、Contacts.Email这类格式 )
效果说明
运行这段代码后,你会得到完全符合需求的DataFrame:
- 包含Account的
Id、Name、BillingStreet等所有指定字段 - 同时包含Contact的
Contacts.Name、Contacts.Email、Contacts.Phone等目标字段 - 如果一个Account关联多个Contact记录,代码会自动将每个Contact拆分成单独一行,对应同一个Account的信息,这也是多对一关联数据的合理展示方式
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

