2015-10-29 83 views
-1

任何人都可以告訴我爲什麼我的for/if語句底部沒有在列表domaininfo中將空字符串設置爲Nonepython在列表中設置空字符串爲空

while True: 
    line = proc.stdout.readline() 
    domaininfo = line.split(',') 

    if line!= '': 
     Id = None 
     fakedomain = domaininfo[1] 
     A = domaininfo[2] 
     AAAA = domaininfo[3] 
     MX = domaininfo[4] 
     NS = domaininfo[5] 
     country = domaininfo[6] 
     whois_created = domaininfo[7] 
     whois_updated = domaininfo[8] 
     SSDEEP = domaininfo[9] 

     for item in domaininfo[1:]: 
      if not item: 
       item = None 

輸出爲:

['blah.com', '1.1.1.1', '', 'mx1.somemxserver.com', 'ns2.somensserver.net', 'Spain', '', '', '\n'] 

所需的輸出:

['blah.com', '1.1.1.1', None, 'mx1.somemxserver.com', 'ns2.somensserver.net', 'Spain', None, None, '\n'] 
+0

實際上@ShawnMehan,一空字符串將返回False,即's ='''>>>'bool(s)'>>'False' –

回答

2

你設置一個變量,而不是一個列表條目:

for i, item in enumerate(domaininfo[1:]): 
    if not item: 
     domaininfo[i + 1] = None