在 TypedDict 中使用無效的屬性名稱
原文由 Alex O'Callaghan 于 發布,訂閱此部落格
我之前已經介紹過如何為 TypedDict 的值使用泛型型別,不過在使用 TypedDict 時可能遇到的另一個挑戰,是鍵名並非有效的識別字的情況。在 Python 中,識別字(或名稱)可包含的字元是有限制的(一般來說只有大小寫字母 A 到 Z、底線 _ 以及數字 0 到 9)。
一般情況下,你會透過定義類別來使用 TypedDict:
from typing import TypedDict
class Book(TypedDict):
id: int
name: str
book: Book = {"id": 123, "name": "To Kill A Mockingbird"}不過,如果有任何鍵不是有效的識別字,這種語法就無法運作——例如它們包含了句點 . 或連字號 -:
from typing import TypedDict
class Book(TypedDict):
id: int
name: str
some-hyphen-field: str
field.dot: str在這種情況下,你可以使用函式式語法:
from typing import TypedDict
Book = TypedDict(
'Book',
{
"id": int,
"name": str,
"some-hyphen-field": str,
"field.dot": str
}
)隨機一篇部落格
留言
登入後參與討論