[英]Retrieve the key value in the Dictionary
我有兩個循環,一個用於檢索密鑰(電子郵件地址)並將其存儲到變量中,另一個循環用於檢索密鑰的值(包含數據的列表)。 但是,腳本運行后,將重復最后一個鍵。
我試圖移動for
循環並嘗試創建一個新的代碼塊,將密鑰放入一個列表中,然后逐個檢索它們,但它不起作用。
import re
import os
userInfoDict = dict()
newDict = eval(open("/home/ad.ilstu.edu/keschm1/IT170/UserLog//myData.txt").read())
list = []
#print(newDict)
email = ' '
firstName = ' '
lastName = ' '
IP = ' '
for keys in newDict.keys():
email = keys
for values in newDict.values():
firstName = values[0]
lastName = values[1]
IP = values[2]
#print('The name is: ' + firstName + ' ' +lastName +' the IP is: ' + IP +'\n')
list.append(email + ": " + firstName + " " + lastName +":" + IP)
file = open("userInfo.txt", "w")
for items in list:
file.write(items + '\n')
#print(items)
file.close()
這是打印到txt文檔時的結果
hosack@comcast.com.:Glen Wilson:172.39.112.76 hosack@comcast.com .: Cindy Tady:123.18.19.20 hosack@comcast.com.:Emma Lim:11.11.11.11 hosack@comcast.com .: Anna Smith:172.28 .19.15 hosack@comcast.com.:Jack Hosack:196.88.45.23
for keys in newDict.keys():
email = keys
你覺得這怎么樣? 這會將newDict中的每個鍵一個接一個地分配給同一個電子郵件變量。 因此, 電子郵件將最終設置為您從newDict字典處理的最后一個鍵值 。 可能不是你想要的。
由於這是您設置電子郵件的唯一方式,因此稍后在代碼中使用時,它將始終設置為相同的值。
你可能想要的是這樣的:
for email, values in newDict.items():
firstName = values[0]
lastName = values[1]
IP = values[2]
#print('The name is: ' + firstName + ' ' +lastName +' the IP is: ' + IP +'\n')
list.append(email + ": " + firstName + " " + lastName +":" + IP)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.