【发布时间】:2019-11-18 18:31:14
【问题描述】:
我正在尝试通过提供键的路径来查找嵌套 Python 字典中的数据。
例如,如果我的 dict 是
my_dict = {"key1": {"key2": 'my data'}}
我想通过提供路径'key1|key2'来访问my_dict['key1']['key2']
这是我尝试过的:
all_keys = "key1|key2"
keys = all_keys.split("|")
key_path = ""
for key in keys:
key_path += '[\'' + key + '\']'
#my_dict is a dictionary with other dictionaries within it
returnval = my_dict + key_path
我收到错误消息:TypeError: unsupported operand type(s) for +: 'dict' and 'str'
【问题讨论】:
-
dict是一个类型,不要这样调用你的变量,选择另一个名字 -
问题不清楚。这里的预期输出是什么?请明确指定您想要的输入和输出
-
我认为你期待
dict + key_path神奇地变成例如dict['key1'],这绝对不会发生。您可以创建和评估该字符串,但为什么不只是dict[key]? -
@jonrsharpe:我想做一个接受 all_keys(使用管道运算符连接的键)并找到键值的函数,所以我没有直接使用 dict['key1']
-
但是您似乎在尝试以一种无法正常工作的方式不必要地将该表达式构建为字符串。关键是您已经可以使用我上面显示的符号将字符串的值用作键。
标签: python