嵌套字典:
nested_dict = {"fruit": {"apple":{"status": "new", "sold": True},
"banana": 10,
"watermelon": 30},
"meat": {"red": 39, "white": 13}}
res = nested_dict.get("fruit", {}).get("apple", {}).get("status")
if res:
print(f"{res = }")
从嵌套字典中提取值是否有更好的实践?
2条答案
按热度按时间axr492tv1#
我对速度不是很确定,但我个人喜欢引用字典元素,就像访问列表、元组或大多数其他python数据结构的元素一样,例如:
我还应该注意到,看起来你正在构造一个叫做JSON file的东西,这是一种常见的文件格式,Python有一个很好的模块,即json模块。
cgh8pdjw2#
你问题中的建议很好。
如果你有很多这样的数据,也许值得写一些helper codem来避免重复,或者安装一个3rdy party lib来更容易地处理嵌套数据。
其中一个库是我编写的一个名为“extradict”的项目(它可以用
pip install extradict
安装),它有一个NestedData
类,该类可以包含嵌套的字典和列表,并允许使用键中的点符号访问项,因此在本例中,只需使用["fruit.apple.status"]
就可以访问数据,下面是完整的代码片段:但是请注意,在这个特定的例子中,如果您试图获取一个包含数字的fruit的“status”,而不是另一个可能包含status键的dict,则会得到
extradict.NestedData
错误。希望这只是示例数据,并且您周围没有这样的异构数据结构。