簡體   English   中英

如何調用和遍歷字典的特定索引?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM