python - 在 Python 中,为什么没有在嵌套字典中查找键的内置函数?

标签 python dictionary

详细说明

sample_dict = {"key1" : {"key2" : "value_of_interest}}

现在我希望能够进行以下调用

val = sample_dict.recursive_get("key2", None)

我可以想到很多这会很有用的情况。例如,从以 JSON 形式出现的 api 响应中获取键值对。

而且我知道编写这样的函数并不难,但我的问题是 - 为什么它还没有包含在内?

如果它导致糟糕的设计,请提供一些例子。

最佳答案

假设,正如一些评论者指出的那样,指向您的“感兴趣的值(value)”的键在嵌套层次结构中出现多次:

sample_dict = {'key1': {'key1': 'value_of_interest'}}
val = sample_dict.recursive_get('key1', None)

val 的值是多少?内部字典? 'value_of_interest'应该是什么?哪个答案违反了 principle of least astonishment

像这样的 dict 怎么样?

sample_dict = {
        'key1': [
                {'key1': 'value_of_interest'},
                {'key2': 'less_interesting_value'},
                ],
        }

递归是否应该在每个级别检查可能的 list 或数组?像这样的字典并不少见,尤其是当由 JSON 形成时。

关键是那里有很多不同的字典,它们可以用很多不同的方式嵌套。 Python 非常精良,可以相当优雅地处理所有这些问题。不过,我想不出 recursive_get 的定义。

关于python - 在 Python 中,为什么没有在嵌套字典中查找键的内置函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35344744/

相关文章:

python - 查询Hive表时,Dataframe NumberFormatException上的Spark 2.2 Thrift服务器错误

javascript - 如何使 map 函数返回单个值而不是数组?

python - 定义具有不可变键但可变值的 python 字典

android - osmdroid - 在 map 上添加一个区域

python - Pandas 或 SQL 中异常的表缩减

python - 我可以将 Python 控制台脚本放入子模块中吗?

python - 将项目添加到列表字典

python - 将数据帧字典写入文件

python - 使用 python+beautifulSoup4 从动态图中抓取数据

python - python中的方法解析顺序