You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas DataFrame转换报错:JSON字符串列表无法转为DataFrame

解决Pandas创建DataFrame时的形状不匹配错误

问题根源

你拿到的data是JSON字符串组成的列表,每个元素是完整的JSON文本,不是直接可用的字典。Pandas会把每个JSON字符串当作单个值,所以传入后是5行1列的结构,但你指定了7列,自然形状不匹配。而data1是字典列表,每个元素对应一行数据,所以能正常创建。

解决步骤

1. 解析JSON字符串为字典

遍历data列表,用json.loads()把每个JSON字符串转成Python字典:

import json
import pandas as pd

# 示例JSON字符串列表
data = [
    '{"time": "2024-01-01", "into": 1, "inth": 2, "intl": 3, "intc":4, "ssboe":5, "intv":6}',
    '{"time": "2024-01-02", "into": 7, "inth": 8, "intl":9, "intc":10, "ssboe":11, "intv":12}'
]

# 批量解析JSON字符串
parsed_data = [json.loads(item) for item in data]

2. 创建DataFrame

用解析后的字典列表创建DataFrame,指定columns(如果字典键和columns完全匹配,也可以省略columns参数):

df = pd.DataFrame(parsed_data, columns=['time','into','inth','intl','intc','ssboe','intv'])

3. 处理格式错误的JSON

如果部分JSON字符串格式有问题,解析会报错,可加异常处理跳过或记录错误:

parsed_data = []
for item in data:
    try:
        parsed_data.append(json.loads(item))
    except json.JSONDecodeError as e:
        print(f"解析失败: {item}, 错误信息: {e}")
        # 可选:用空值填充错误数据
        # parsed_data.append({col: None for col in ['time','into','inth','intl','intc','ssboe','intv']})

df = pd.DataFrame(parsed_data, columns=['time','into','inth','intl','intc','ssboe','intv'])

验证结果

运行后用print(df.head())查看,数据结构应该和data1创建的DataFrame一致。

内容的提问来源于stack exchange,提问作者bengaltiger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 21:22:36