Python中的Dictionary未打印更新的键/值对



我的Selenium脚本中有一个Python字典,其中一个键("data"(在之后会更新,因为它不是固定值,所以我用Selenium:获得它

fields_personal = {
"data": "", 
"nome": "João da Silva",
"documento": "CPF",
"numero": "123.456.789-10",
"telefone": "(01)23456-7890",
"email": "teste@email.com"
}
for data, value in fields_personal.items():
element = driver.find_element_by_id(data)
element.send_keys(value)
if data == "data":
for item in element.find_elements_by_tag_name("option"):
option = item.text.strip()
elem = driver.find_element_by_xpath("//*[@id='data']/option[1]").click()
fields_personal["data"] = option
break
print("{}: {}".format(data, value))

没问题,它很好用。但是当我尝试用print("{}: {}".format(data, value))或简单地用print(data, value)打印字典时;数据";值为空的密钥,就好像它还没有更新一样:

data:  
nome: João da Silva
documento: CPF
numero: 123.456.789-10
telefone: (01)23456-7890
email: teste@email.com

我打印更新后的字典的唯一方法是调用pprint.pprint(fields_personal),因为我希望它是逐行结构化的,但这会输出用引号和大括号格式化的结果,这是我不想要的:

{'data': '28/06/2021',
'documento': 'CPF',
'email': 'teste@email.com',
'nome': 'João da Silva',
'numero': '123.456.789-10',
'telefone': '(01)23456-7890'}

那么,我如何在不更新引号和大括号的情况下逐行打印它呢?

if块中,更新fields_personal["data"];但是,当您将其打印为data时,这是在for循环开始时读取的原始值。

您可以在块内移动打印,在if中添加一个else,以避免打印两次相同的值。

for data, value in fields_personal.items():
element = driver.find_element_by_id(data)
element.send_keys(value)
if data == "data":
for item in element.find_elements_by_tag_name("option"):
option = item.text.strip()
elem = driver.find_element_by_xpath("//*[@id='data']/option[1]").click()
fields_personal["data"] = option
break
print("{}: {}".format("data", fields_personal["data"])
else:
print("{}: {}".format(data, value))

然而,如果您可以在for块之后等待,那会更好。

for data, value in fields_personal.items():
element = driver.find_element_by_id(data)
element.send_keys(value)
if data == "data":
for item in element.find_elements_by_tag_name("option"):
option = item.text.strip()
elem = driver.find_element_by_xpath("//*[@id='data']/option[1]").click()
fields_personal["data"] = option
break
for key, value in fields_personal.items():
print(f"{key}: {value}")

相关内容

  • 没有找到相关文章