[英]How to call and iterate through specific indexes of a dictionary?
我目前有通过字典打印出用户名和密码的代码。 输出为username:abc password:12345。 现在,我把它们都同时打印出来。 我的主要目标是能够根据用户名发送电子邮件给这些用户,但是我当然只希望包括他们的用户名和密码信息。 不是全部信息列表。 因此,基本上,我希望仅告诉特定用户其密码。 例如,我想向用户abc发送电子邮件,并且该电子邮件应仅包含其用户名和密码。 然后,我想向用户xyz发送电子邮件,但该电子邮件只应包含用户xyz的密码。 有什么办法可以做到这一点?
我目前拥有字典印刷中的所有内容。 因此,所有用户名和密码都已打印出来。 我该如何遍历这些密码并向每个用户发送带有密码的电子邮件?
lines = []
User_Pass = {}
#Open output file and show only lines that contain 'Success'
with open("output.txt", "r") as f:
for line in f.readlines():
#Get rid of everything in line after 'Success'
if 'Success' in line:
lines.append(line[:line.find("Success")-1])
for element in lines:
parts = element.strip().split(":")
User_Pass.update({parts[0] : parts[1]})
for key, value in User_pass.items():
print('Username: ' + key + ' Password: ' + value)
我希望能够通过电子邮件发送每个用户名并告诉他们其密码。 我真的不确定如何去做。 任何帮助,将不胜感激!
假设您已经构造了字典,您只需要向它询问与key相关联的值 ,即用户名:
user_pw = User_Pass.get(username)
如果用户名不在词典中,则将返回None。
建议您研究一些示例的Python词典。 在循环代码中,您也有一些倒退。 每当您想遍历字典(正确的方式)时,都想使用键而不是项来遍历,因此可以遍历示例中的所有内容:
for key in User_Pass.keys():
print (key, User_Pass.get(key) )
仅在遇到“用户名”或“密码”时填写User_Pass
词典:
for element in lines:
key, value = element.strip().split(":")
if key in {"username", "password"}:
User_Pass.update({key: value})
一个简单的演示:
lines = [
"fullname:John Doe",
"username:jdoe",
"password:S3cRet",
"age:45",
]
User_Pass = {}
for element in lines:
key, value = element.strip().split(":")
if key in {"username", "password"}:
User_Pass.update({key: value})
print(User_Pass)
你得到:
{'username': 'jdoe', 'password': 'S3cRet'}
请,您应该遵循PEP8的命名约定:“ User_Pass” =>“ user_pass”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.