你将如何根据列表的值修改/创建嵌套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会转到不存在的词典中的键,则应创建它们.
我目前正在做这样的事情来访问我的 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)