如何用Python将父JSON中data键内的JSON导入DataFrame?
解决JSON字符串导入Pandas DataFrame的问题
问题出在你直接把JSON字符串传给了pd.json_normalize——这个函数需要的是已经解析好的Python字典/列表对象,而非原始字符串。直接传字符串的话,pandas会把它当作单个值处理,显示出来的"哈希值"其实是字符串本身(可能因为太长只显示了部分内容)。
正确处理分两步:
- 先用
json.loads()把JSON字符串解析成Python可迭代对象(字典或列表) - 再将解析后的对象传入
pd.json_normalize生成DataFrame
代码示例
import pandas as pd import json # 假设你从API获取的父JSON数据 api_response = { "data": '[{"user_id": 1, "username": "tw1ster"}, {"user_id": 2, "username": "test_user"}]' } # 1. 解析JSON字符串 parsed_json = json.loads(api_response["data"]) # 2. 生成DataFrame df = pd.json_normalize(parsed_json) print(df)
特殊情况处理
如果解析后的结果是单个字典(而非列表),pd.json_normalize同样适用,会生成单行的DataFrame:
single_obj_response = { "data": '{"user_id": 1, "username": "tw1ster", "details": {"age": 25, "city": "Beijing"}}' } parsed_single = json.loads(single_obj_response["data"]) df_single = pd.json_normalize(parsed_single) print(df_single)
这样就能得到和Bruno工具里一致的结构化数据了。
内容的提问来源于stack exchange,提问作者Tw1ster
相关产品推荐
相关产品推荐

