如何创建一个TypedDict类,该类支持包含连字符或字符串中支持的其他字符的键,例如下面示例中的"justify content".

from typing import TypedDict, Literal
from typing_extensions import NotRequired

class Attributes(TypedDict):
    width: NotRequired[str]
    height: NotRequired[str]
    direction: NotRequired[Literal["row", "column"]]
    justify-content: NotRequired[Literal["start", "end", "center", "equally-spaced"]]

推荐答案

可以使用函数语法:

from typing import TypedDict, Literal
from typing_extensions import NotRequired


Attributes = TypedDict(
    "Attributes",
    {
        "width": NotRequired[
            str,
        ],
        "height": NotRequired[
            str,
        ],
        "direction": NotRequired[
            Literal["row", "column"],
        ],
        "justify-content": NotRequired[
            Literal["start", "end", "center", "equally-spaced"]
        ],
    },
)

这是在documentation中提到的

当任何键都不是有效标识符时,也应使用函数语法,例如,因为它们是关键字或包含连字符

Python相关问答推荐

Pandas 在最近的日期合并,考虑到破产

rame中不兼容的d类型

类型错误:输入类型不支持ufuncisnan-在执行Mann-Whitney U测试时[SOLVED]

如何访问所有文件,例如环境变量

Telethon加入私有频道

修复mypy错误-赋值中的类型不兼容(表达式具有类型xxx,变量具有类型yyy)

Stacked bar chart from billrame

使用密钥字典重新配置嵌套字典密钥名

启用/禁用shiny 的自动重新加载

如何使用Numpy. stracards重新编写滚动和?

将scipy. sparse矩阵直接保存为常规txt文件

lityter不让我输入左边的方括号,'

在Python中计算连续天数

基于多个数组的多个条件将值添加到numpy数组

Python—为什么我的代码返回一个TypeError

用fft计算指数复和代替求和来模拟衍射?

利用SCIPY沿第一轴对数组进行内插

正在try 让Python读取特定的CSV文件

PYTHON中的selenium不会打开 chromium URL

是否将Pandas 数据帧标题/标题以纯文本格式转换为字符串输出?