簡體   English   中英

檢索詞典中的鍵值

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

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