繁体   English   中英

Python 键入字典的字典

[英]Python typing dict of dicts

如何正确键入提示此 python 结构:

people={ 
   "john" : {"likes": "apples", "dislikes": "organges"},
   "aisha": {"likes": "kittens", "dislikes": "ravens"}
}

编辑:可以指定任何键 - 例如“mary”,“joseph”,“carl”......我知道可以这样输入值字典

class _Preferences(TypedDict):
    likes: str
    dislikes: str

但我不确定如何输入people自己决定的内容。

people: dict[str, dict[str, str]] = { 
   "john": {"likes": "apples", "dislikes": "oranges"},
   "aisha": {"likes": "kittens", "dislikes": "ravens"}
}

这应该适用于较新版本的 python3

您可以为值定义一个TypedDict ,然后用它注释people字典:

from typing import TypedDict


class LikesDislikes(TypedDict):
    likes: str
    dislikes: str


people: dict[str, LikesDislikes]

people = {
    "john": {"likes": "apples", "dislikes": "organges"},
    "aisha": {"likes": "kittens", "dislikes": "ravens"},
}

你的people字典没有固定的结构,但它们是字符串。 你不能做更多的事情。 如果它有固定的结构,你也可以把它写成TypedDict并将LikesDislikes设置为键的值。 像:

class People(TypedDict):
    john: LikesDislikes
    aisha: LikesDislikes

但这在这里没有意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM