根据python和selenium中的动态值选择字典名称

2024-09-30 01:35:06 发布

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

可能是一个简单的解决方案,但我不知道如何根据动态字典名称获取字典值

对于每种类型的参数列表,我都有字典,名字像cparam_dict_1、cparam_dict_2、cparam_dict_3等等。 我有一个函数find_parameters,它包含变量r_namer_typer_num,如何根据r_num提供的数字选择字典,以便我可以从字典中提取值,比如cparam_dict_{r_num}[r_type],其中r_type是键(入站的OSB资源等)

如果我直接添加完整的词典名称,它会起作用-

element = driver.find_element_by_xpath('//table[@id="' + cparam_dict_1[r_type] + '"]//tbody//tr//td//input[@value="' + r_name + '"]')

但是如果我可以根据r_num选择字典名称,那将很有帮助

cparam_dict_1 = {
    "INBOUND_OSB_RESOURCES": "tbl_ecp_choice-parameter-28808620766985",
    "OUTBOUND_OSB_RESOURCES": "tbl_ecp_choice-parameter-11676168985228",
    "PASSTHROUGH_OSB_RESOURCES": "tbl_ecp_choice-parameter-11676170588702",
    "BPM_BPEL_COMPOSITE_RESOURCES": "tbl_ecp_choice-parameter-54262573455103813"

}

cparam_dict_2 = {
    "INBOUND_OSB_RESOURCES": "tbl_ecp_choice-parameter-28808620778433",
    "OUTBOUND_OSB_RESOURCES": "tbl_ecp_choice-parameter-116761689785625",
    "PASSTHROUGH_OSB_RESOURCES": "tbl_ecp_choice-parameter-11676170586563",
    "BPM_BPEL_COMPOSITE_RESOURCES": "tbl_ecp_choice-parameter-54262573455112907"

}

def find_parameters(r_type,r_name,r_num):
    element = driver.find_element_by_xpath('//table[@id="' + cparam_dict_{r_num}[r_type] + '"]//tbody//tr//td//input[@value="' + r_name + '"]')

Tags: name名称字典parametertypeelementfindnum
1条回答
网友
1楼 · 发布于 2024-09-30 01:35:06

你可以用globals()来做这个

def find_parameters(r_type,r_name,r_num):
    element = driver.find_element_by_xpath('//table[@id="' + globals()[f'cparam_dict_{r_num}'][r_type] + '"]//tbody//tr//td//input[@value="' + r_name + '"]')

相关问题 更多 >

    热门问题