【发布时间】:2021-12-05 11:23:47
【问题描述】:
我正在尝试使用 BaseModel 的 POST 方法构建一个 fastAPI,以进行数据验证。 我的(简化)输入数据是一个 JSON,如下所示:
{
"name": "test",
"a": {
"b": {
"c": {
"0": "Fl"
},
"400": {
"0": 0
}
},
"d": {
"400": {
"0": 56.3,
"1": 78.3,
"2": 96.1,
"3": 101.58
}
}
}
}
当我尝试创建 BaseModel 时,PyCharm 通知我将 400、str(400) 或 '400' 作为键是错误的。所以我会有一个看起来像这样的类:
class D_0123(BaseModel):
0: float
1: float
2: float
3: float
class BD(BaseModel):
400: Dict[D_0123]
class Item(BaseModel):
name: str
a: Dict[BD]
PyCharm 给我一个错误:“变量分配的非法目标”。 我知道 JSON 不能将 int 作为键,因为它们会自动转换为“int”。
所以我想知道我想做的事情是否可行?有解决办法吗?
感谢大家的宝贵时间!
祝你有美好的一天!
【问题讨论】:
-
您的输入数据是有效的 JSON,PyCharm 不会抱怨这一点。请编辑发布 BaseModel 创建代码的问题,以便我们知道如何提供帮助。
-
@tzot 我添加了引发问题的 BaseModel 部分。
标签: python json fastapi pydantic