如何将指定JSON数据转为3个Pandas DataFrame?加载失败求助
JSON转Pandas DataFrame问题解决建议
你的问题
我有如下JSON数据:
{ "categories": [ { "category_id": "11decadd", "name": "Com", "category_type": "Type", "position": 5, "vela_defined": true, "created_at": "2017-02-15 01:49:23 -0700", "updated_at": "2017-02-15 01:49:23 -0700" }, { "category_id": "c7010763", "name": "none", "category_type": "EquipmentStatus", "position": 1, "vela_defined": true, "created_at": "2017-02-15 01:49:23 -0700", "updated_at": "2018-03-01 04:20:38 -0700" } ], "customizable_categories": [ { "customizable_category_id": "435ae18b", "name": "NA", "category_id": "11decadd", "position": 1, "created_at": "2017-02-15 01:49:23 -0700", "updated_at": "2017-02-15 01:49:23 -0700" }, { "customizable_category_id": "51e607d8", "name": "Third Party", "category_id": "fafab667", "position": 2, "created_at": "2017-02-15 01:49:23 -0700", "updated_at": "2017-02-15 01:49:23 -0700" } ], "equipment_category_status_sets": [ ] }我尝试将其转换为以JSON顶级条目命名的3个Pandas DataFrame,但始终无法加载,恳请提供解决建议。
可行的解决步骤
我帮你整理了一套直接可行的代码方案,你可以照着操作:
1. 导入必要库并解析JSON
首先确保导入pandas和json,然后把JSON数据解析成Python字典——这是转换DataFrame的关键前提:
import pandas as pd import json # 把你的JSON数据存为字符串(如果是本地文件,看下面的补充) json_data = '''{ "categories": [ { "category_id": "11decadd", "name": "Com", "category_type": "Type", "position": 5, "vela_defined": true, "created_at": "2017-02-15 01:49:23 -0700", "updated_at": "2017-02-15 01:49:23 -0700" }, { "category_id": "c7010763", "name": "none", "category_type": "EquipmentStatus", "position": 1, "vela_defined": true, "created_at": "2017-02-15 01:49:23 -0700", "updated_at": "2018-03-01 04:20:38 -0700" } ], "customizable_categories": [ { "customizable_category_id": "435ae18b", "name": "NA", "category_id": "11decadd", "position": 1, "created_at": "2017-02-15 01:49:23 -0700", "updated_at": "2017-02-15 01:49:23 -0700" }, { "customizable_category_id": "51e607d8", "name": "Third Party", "category_id": "fafab667", "position": 2, "created_at": "2017-02-15 01:49:23 -0700", "updated_at": "2017-02-15 01:49:23 -0700" } ], "equipment_category_status_sets": [ ] }''' # 解析为Python字典 parsed_data = json.loads(json_data)
如果JSON存在本地文件中,替换成以下代码读取:
# 从本地文件读取JSON with open('your_file.json', 'r', encoding='utf-8') as f: parsed_data = json.load(f)
2. 生成对应顶级条目的DataFrame
直接遍历字典的顶级键,用pd.DataFrame()把每个键对应的列表转换成DataFrame即可,空列表也能生成空的DataFrame:
# 分别创建三个目标DataFrame df_categories = pd.DataFrame(parsed_data['categories']) df_customizable_categories = pd.DataFrame(parsed_data['customizable_categories']) df_equipment_status_sets = pd.DataFrame(parsed_data['equipment_category_status_sets'])
3. 验证转换结果
你可以打印每个DataFrame确认是否成功:
print("=== Categories DataFrame ===") print(df_categories) print("\n=== Customizable Categories DataFrame ===") print(df_customizable_categories) print("\n=== Equipment Status Sets DataFrame ===") print(df_equipment_status_sets)
常见问题排查
如果还是加载失败,大概率是这几个原因:
- JSON格式错误:检查JSON是否有语法问题,比如引号不匹配、末尾多逗号等,可以用VS Code的JSON插件这类工具快速校验。
- 文件读取问题:确保文件路径正确,且文件编码为UTF-8,避免乱码导致解析失败。
- Pandas版本过旧:旧版Pandas对部分JSON结构支持不足,尝试升级到最新稳定版:
pip install --upgrade pandas
内容的提问来源于stack exchange,提问作者ck3mp
相关产品推荐
相关产品推荐

