如何在Python中读取嵌套JSON并提取Case Status转为DataFrame
处理嵌套JSON并提取Case Status到DataFrame
没问题,我来帮你搞定这个嵌套JSON的处理需求!下面是具体的实现步骤和代码,完全能得到你想要的结果:
完整代码示例
import json import pandas as pd # 你的嵌套JSON数据(如果是从文件读取,替换为下面的注释代码) data = { "13638": { "Advocate Name": "BRET ALLEN", "No. of Cases": "2", "WP 15699/2019": { "Case Category": "SERVICE", "District": "HYDERABAD", "Filing Date": "23/07/2019", "Registration Date": "24/07/2019", "Listing Date": "26/08/2019", "Case Status": "PENDING" }, "CRLP 804/2019": { "Case Category": "-", "District": "HYDERABAD", "Filing Date": "12/02/2019", "Registration Date": "12/02/2019", "Listing Date": "21/06/2019", "Case Status": "PENDING" } }, "231": { "Advocate Name": "DAISY LEE", "No. of Cases": "28", "WP 1518/2019": { "Case Category": "NON-SERVICE", "District": "HYDERABAD", "Filing Date": "28/01/2019", "Registration Date": "28/01/2019", "Listing Date": "11/02/2019", "Case Status": "DISPOSEDClick here to see the Order" }, "WP 2896/2019": { "Case Category": "NON-SERVICE", "District": "HYDERABAD", "Filing Date": "12/02/2019", "Registration Date": "13/02/2019", "Listing Date": "-", "Case Status": "PENDING" } } } # 如果从文件读取JSON,取消下面的注释 # with open('your_json_file.json', 'r') as f: # data = json.load(f) # 收集所有Case Status值 case_status_list = [] for advocate_id, advocate_details in data.items(): # 遍历律师的所有信息,跳过非案件字段 for key, content in advocate_details.items(): if key not in ["Advocate Name", "No. of Cases"]: # 安全提取Case Status,避免键不存在报错 status = content.get("Case Status") if status: case_status_list.append(status) # 转换为DataFrame result_df = pd.DataFrame({"Case Status": case_status_list}) # 打印结果 print(result_df)
代码说明
- 导入依赖库:
json用于加载JSON数据(从文件读取时需要),pandas用于生成DataFrame。 - 加载JSON数据:可以直接使用你提供的字典,也可以通过
json.load()从本地文件读取。 - 遍历提取数据:
- 外层循环遍历每个律师的ID(如"13638"、"231")及其对应的详细信息。
- 内层循环过滤掉
Advocate Name和No. of Cases这两个非案件字段,只处理具体的案件条目。 - 用
content.get("Case Status")安全提取案件状态,即使某个案件没有这个键也不会报错。
- 生成DataFrame:把收集到的所有状态值放到列表里,再转换成指定列名的DataFrame。
运行这段代码后,输出的DataFrame就会包含你期望的四个状态值:PENDING、PENDING、DISPOSEDClick here to see the Order、PENDING。
内容的提问来源于stack exchange,提问作者Najma Naaz
相关产品推荐
相关产品推荐

