相关疑难解决方法(0)

使用列表中的项目更改嵌套dicts的dict中的值?

你将如何根据列表的值修改/创建嵌套dicts的dict中的键/值,其中列表的最后一项是dict的值,其余的项目是否依赖于dicts中的键?这将是列表:

list_adddress = [ "key1", "key1.2", "key1.2.1", "value" ]
Run Code Online (Sandbox Code Playgroud)

在解析命令行参数时,这只会是一个问题.很明显,在脚本中修改/创建这个值非常容易使用dict_nested["key1"]["key1.2"]["key1.2.1"]["value"].

这将是dicts的嵌套词典:

dict_nested = { 
    "key1": {
                "key1.1": { 
                            "...": "...",
                },
                "key1.2": { 
                            "key1.2.1": "change_this",
                },
            },

    "key2": {
                "...": "..."
            },
}
Run Code Online (Sandbox Code Playgroud)

我想在这种情况下,需要像递归函数或列表推导这样的东西.

def ValueModify(list_address, dict_nested):
    ...
    ...
    ValueModify(..., ...)
Run Code Online (Sandbox Code Playgroud)

此外,如果其中的项目list_address会转到不存在的词典中的键,则应创建它们.

python recursion dictionary nested list-comprehension

5
推荐指数
1
解决办法
6178
查看次数

检查json对象中的路径是否存在?

我目前正在做这样的事情来访问我的 json 对象中的数组

teacher_topical_array = teacher_obj["medication"]["topical"]
Run Code Online (Sandbox Code Playgroud)

但是在此之前,我想确保路径teacher_obj["medication"]["topical"]存在,并且我正在寻找一种更简单的方法来完成此操作。

现在我明白我可以做这样的事情

if "medication" in teacher_obj:
    if "topical" in teacher_obj["medication"]:
             #yes the key exists
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以以不同的方式完成上述任务。如果我必须检查类似的东西,那可能会更有效

teacher_obj["medication"]["topical"]["anotherkey"]["someOtherKey"]
Run Code Online (Sandbox Code Playgroud)

python json dictionary

1
推荐指数
1
解决办法
3171
查看次数