为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

烙印99 2021-06-06 15:29:20
我想指定一个具有prizes属性的对象。这可能是一个PrizeInfo对象列表,也可能是一个空列表。我正在寻找类似于下面代码的架构,除了这会返回以下错误:"MySchema": {    "properties": {        "prizes": {            "type": "List['PrizeInfo', 'null']",        }    } }E   TypeError: Too many parameters for typing.List; actual 2, expected 1我正在使用这些模板来生成 Python 类。
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

“空”列表没有注释。任何空列表对象都将满足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[...]提示中使用它;读起来好像您在说元素的类型可能是可选的,从而导致类型规范混乱。


查看完整回答
反对 回复 2021-06-09
  • 1 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信