【发布时间】:2020-05-22 17:12:24
【问题描述】:
我正在尝试为JSON Schema spec 声明一个类型,以便我可以通过jsonschema Python 包传递模式来验证类型。它是一个字典,所以我使用 Python 3.8 TypedDict。这是我目前所拥有的:
from typing import List, Dict, Any, TypedDict, Optional
class JSONSchema(TypedDict):
"""A type for the JSONSchema spec"""
type: str
title: Optional[str]
description: Optional[str]
properties: Optional[Dict[str, JSONSchema]]
required: Optional[List[str]]
additionalProperties: Optional[bool]
definitions: Optional[Dict[str, JSONSchema]]
minLength: Optional[int]
maxLength: Optional[int]
allOf: Optional[List[JSONSchema]]
anyOf: Optional[List[JSONSchema]]
oneOf: Optional[List[JSONSchema]]
not: Optional[JSONSchema]
但是,我收到以下语法错误:
File "autocoder_ocr/schemas.py", line 39
not: Optional[JSONSchema]
^
SyntaxError: invalid syntax
这是因为not 是语言关键字。但是,"not" 是一个有效的字典键。那么如何在类型定义中声明呢?
我正在使用 Python 3.8.2
【问题讨论】:
标签: python python-typing