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

TypeError: Object of type 'Column'无法JSON序列化,该错误含义是什么?

解决 TypeError: Object of type 'Column' is not JSON serializable 错误

首先,这个错误的核心意思很明确:你尝试用json.dumps()序列化的对象里,包含了JSON标准不支持的Column类型(大概率是pandas库中的Column对象)。JSON只能处理Python的基础数据类型(比如字典、列表、字符串、数字、布尔值、None),碰到Column这种自定义类的实例时,它不知道该怎么转换成JSON格式,所以直接报错了。

从你描述的操作和贴出的JSON内容来看,这里可能存在两个误区:

  1. 你说“正尝试将其转换为字典”,但json.dumps()的作用是把Python对象转换成JSON字符串,反过来把JSON字符串/文件转成字典应该用json.loads()(处理字符串)或json.load()(处理文件)。
  2. 你贴出的test_response内容是标准的JSON结构,但实际代码中的test_response大概率不是纯字典——它里面混入了Column类型的元素(比如你用pandas读取文件时,不小心把DataFrame的列对象当成了普通数据)。

具体解决步骤:

  • 第一步:确认数据类型
    先打印出test_response的类型和内部元素的类型,搞清楚哪里混入了Column对象:

    print(type(test_response))
    # 如果是字典,遍历检查每个值的类型
    if isinstance(test_response, dict):
        for key, value in test_response.items():
            print(f"{key}: {type(value)}")
    
  • 第二步:正确读取JSON文件
    如果你的test_response是从JSON文件来的,确保用正确的方式读取成字典:

    import json
    
    # 读取JSON文件并转成字典
    with open("your_test_response.json", "r") as f:
        test_response = json.load(f)
    
    # 此时test_response是纯字典,用json.dumps()转成JSON字符串完全没问题
    json_str = json.dumps(test_response)
    
  • 第三步:处理混入的Column对象
    如果确实是pandas的Column对象混在了数据里,把它转换成Python基础类型即可:

    import pandas as pd
    
    # 假设某个值是Column对象,转成列表
    if isinstance(test_response["some_key"], pd.Series):  # pandas的Column本质是Series
        test_response["some_key"] = test_response["some_key"].tolist()
    
    # 或者如果是整个数据结构是DataFrame,转成字典再处理
    if isinstance(test_response, pd.DataFrame):
        test_response = test_response.to_dict(orient="records")
    

补充说明:

你贴出的JSON内容是完全合法的,要是直接把这段内容赋值给test_response(作为字典),执行json.dumps()不会报错——所以问题肯定出在你实际读取/生成test_response的过程中,不小心引入了Column类型的对象,按照上面的步骤排查就能解决啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:28:33