无法将JSON转换为Pandas DataFrame,求读取JSON至DataFrame的正确方法
解决Pandas读取嵌套JSON为单列的问题
你的JSON数据是嵌套结构:外层有一个info键,对应的值才是包含实际记录的列表,直接用pd.read_json()读取时,Pandas会把整个info列表当成单个单元格的值,所以只生成了一列。下面是两种最佳解决方式:
方法一:读取后展开嵌套数据
先读取整个JSON,再提取info列并展开成标准DataFrame:
import pandas as pd # 读取JSON文件 df = pd.read_json('file.json', encoding='utf-8') # 将info列中的列表拆分为多行,再展开字典为列 data2 = pd.json_normalize(df['info'].explode())
方法二:手动加载JSON后直接转换
如果明确知道JSON结构,直接加载后提取info列表创建DataFrame,这种方式更高效:
import pandas as pd import json # 手动加载JSON文件内容 with open('file.json', 'r', encoding='utf-8') as f: json_data = json.load(f) # 用info对应的列表直接生成DataFrame data2 = pd.DataFrame(json_data['info'])
两种方法都能正确将你的JSON转换成包含product、email-adr、Gender等字段的多列DataFrame,即使info里有多条记录也能完美处理。
内容的提问来源于stack exchange,提问作者Thabra
相关产品推荐
相关产品推荐

