如何使用Pandas读取JSON文件并转换为含多行列的DataFrame
使用Pandas读取嵌套JSON并转换为结构化DataFrame
步骤1:导入所需库
import pandas as pd import json
步骤2:读取JSON文件
假设你的JSON文件名为cibil_data.json,先加载文件内容:
with open('cibil_data.json', 'r', encoding='utf-8') as f: raw_data = json.load(f)
步骤3:提取公共关联字段
提取外层元数据和嵌套的非数组信息(评分、办公状态等),这些字段对所有账户/查询记录都是通用的:
# 外层基础字段 common_data = { '_id': raw_data['_id'], 'userId': raw_data['userId'], 'tenantId': raw_data['tenantId'], 'createDate': raw_data['createDate'], 'type': raw_data['type'], 'isOutputValid': raw_data['isOutputValid'], 'bureauStatus': raw_data['data']['bureauStatus'] } # 合并信用评分信息 common_data.update(raw_data['data']['scoreInfo']) # 合并办公信息(取数组第一个元素) common_data.update(raw_data['data']['officeInfo'][0])
步骤4:转换账户信息为结构化DataFrame
将嵌套的accountInfo数组转为DataFrame,并为每一行添加上一步提取的公共字段:
# 生成账户信息DataFrame account_df = pd.DataFrame(raw_data['data']['accountInfo']) # 为所有账户行添加公共字段 for field, value in common_data.items(): account_df[field] = value # 调整列顺序(可选,让公共字段排在前面) column_order = list(common_data.keys()) + [col for col in account_df.columns if col not in common_data.keys()] account_df = account_df[column_order]
扩展:转换查询信息为DataFrame
如果需要处理enquiryInfo,方法类似:
enquiry_df = pd.DataFrame(raw_data['data']['enquiryInfo']) for field, value in common_data.items(): enquiry_df[field] = value
最终生成的account_df就是包含多列多行的结构化表格,每行对应一个账户记录,同时关联了所有基础元数据、信用评分和办公信息,与目标效果一致。
内容的提问来源于stack exchange,提问作者SHESADEV SHA
相关产品推荐
相关产品推荐

