JSON,列表可能是空的什么类型?

2024-10-08 20:20:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想指定一个具有prizes属性的对象。这可能是PrizeInfo对象的列表,也可能是空列表。我正在查找类似以下代码的架构,但它返回以下错误:

"MySchema": {
    "properties": {
        "prizes": {
            "type": "List['PrizeInfo', 'null']",
        }
    }
 }

E   TypeError: Too many parameters for typing.List; actual 2, expected 1

我使用这些模板来生成Python类。在


Tags: 对象代码列表属性架构type错误properties
1条回答
网友
1楼 · 发布于 2024-10-08 20:20:58

“空”列表没有批注。任何空列表对象都将满足List[...]类型的提示,而不管列表内容必须是什么。在

因此,如果允许空列表,请使用

List['PrizeInfo']

它允许包含0个或更多元素的任何列表,因此空列表包含在该提示中。在

如果您想说None值(JSON中的null)可以放在PrizeInfo对象旁边,那么使用^{} annotation和{}:

^{pr2}$

如果您想说None,或者{}对象的列表是允许的(在JSON术语中,null或数组),那么使用

Union[List['PrizeInfo'], None]

您还可以使用^{}

Optional[List['PrizeInfo']]

意思是一样的。但是,我不会在List[...]提示中使用它;它读起来好像您在说元素的类型可能是可选的,这导致了一个令人困惑的类型规范。在

相关问题 更多 >

    热门问题