访问字典时出现键错误?

2024-05-14 09:31:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我下面有一本名叫json_dict的字典。在

我需要访问元素==> json_dict['OptionSettings'][3]['Value']。在

我需要使用语法访问元素

print(json_dict[parameter])。在

当我给出一个参数,比如

param="['OptionSettings'][3]['Value']"

param="'OptionSettings'][3]['Value']"

我遇到了如下错误:

KeyError: "['OptionSettings'][3]['Value']"。在

我试图使用下面的解决方案,但它只是打印了一个字符串

str1="json_dict"
print(str1+param)

完整词典如下:

^{pr2}$

Tags: json元素参数字典parameterparamvalue错误
2条回答

不幸的是你不能那样做。在

当您输入param="['OptionSettings'][3]['Value']"然后json_dict[param]时,您基本上要求的是不存在的键"['OptionSettings'][3]['Value']"表示的值。在

你必须在各个关卡中导航,直到你到达最后一个关卡。在


当然,如果您需要一个一行程序,您可以创建一些逻辑并将其提取到方法中。在

例如,而不是

print(json_dict[param]). 

你可以用像

^{pr2}$

并定义一个函数,如

import re

def get_json_value(json_dict, params):
    list_of_params = re.findall(r'\[([^]]*)\]', params)
    #list_of_params = ['OptionSettings', '3', 'Value']

    _ = json_dict
    for elem in list_of_params:
         _ = _[elem]
    return _

我还没有测试过,但它应该能正常工作。
(另外,它只是一个演示,用于指导您使用其他解决方案)

这对我有用

str1="json_dict"
params="['OptionSettings'][3]['Value']"
str2=str1+params
print(eval(str5))

这里使用函数eval()是解决这个问题的关键。在

相关问题 更多 >

    热门问题