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

使用Pydantic 1.10.7解析模型时遇cython_function_or_method不可下标错误

问题解决

直接错误原因及修复

你遇到的TypeError: 'cython_function_or_method' object is not subscriptable是因为Pydantic 1.x版本的parse_obj_as不支持下标调用语法,这种方括号[]的泛型调用是Pydantic 2.x才引入的写法。

在Pydantic 1.10.7中,正确的调用方式是把类型作为第一个参数,待解析数据作为第二个参数:

from typing import List
from pydantic import parse_obj_as

parsed_columns = parse_obj_as(List[Column], columns)

其他需要修复的潜在问题

除了调用方式错误,你的代码还有两处问题会导致后续解析失败:

  1. YearAndMonth类未定义:模型中year_and_month属性返回了YearAndMonth类型,但代码里没有这个类的定义,需要补充:
from pydantic import BaseModel

class YearAndMonth(BaseModel):
    year: int
    month: int
  1. fields字段类型不明确:当前fields: Sequence = []使用了抽象类型Sequence,Pydantic解析时可能无法正确处理,建议改为具体类型,比如:
from typing import List

class Column(BaseModel, frozen=True):
    # ...其他字段
    fields: list = []

或者如果需要支持嵌套Column结构,用自引用类型:

from typing import Sequence

class Column(BaseModel, frozen=True):
    # ...其他字段
    fields: Sequence["Column"] = []

Column.update_forward_refs()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 19:45:05