JSON,列表可能为空 - 什么类型?

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


"MySchema": {

    "properties": {

        "prizes": {

            "type": "List['PrizeInfo', 'null']",

        }

    }

 }


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

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


烙印99
浏览 86回答 1
1回答

慕容708150

“空”列表没有注释。任何空列表对象都将满足List[...]类型提示,无论列表内容必须是什么细节。因此,如果允许空列表,请使用List['PrizeInfo']这允许具有 0 个或更多元素的任何列表,因此该提示中包含空列表。如果你不是想说的是None值(null以JSON)的旁边,允许PrizeInfo物体,然后使用一个Union[...]注解用None:List[Union['PrizeInfo', None]]如果您想说允许None, 或PrizeInfo对象列表(在 JSON 术语中,anull或数组),请使用Union[List['PrizeInfo'], None]您还可以使用Optional[...]:Optional[List['PrizeInfo']]意思是一样的。但是,我不会在List[...]提示中使用它;读起来好像您在说元素的类型可能是可选的,从而导致类型规范混乱。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python