1

我正在从 Web 服务中删除一些数据,其中一个参数是 last_ping_time 女巫可以在某个时候没有值。我正在将当前日期与 last_ping_time 进行比较以检查与机器的通信。所以我得到

ValueError:时间数据“无”与格式“%Y-%m-%dT%H:%M:%SZ”不匹配

如果我得到 None 我试图设置虚拟值

   if ping=="None":

   ping="2013-01-01T00:00:00

也试过 break 或 continue nut 他们似乎没有工作这个错误仍然存​​在。如果为空,我需要循环继续到下一个值或放置一些虚拟值并继续。我没有想法,请帮助。

with open(filename, 'wb') as csvfile:   #Creating report file
    spamwriter = csv.writer(csvfile, delimiter='    ')
    for computer in computers:

        ping=computer["last_ping_time"]
        ping=str(ping)
        ping.split('T')
        if ping=="None":
        #break
        ping="2013-01-01T00:00:00"  
        else

                ping=datetime.datetime.strptime(ping, '%Y-%m-%dT%H:%M:%SZ') # Convert string to data

                if ping<Current_Date: 
                        #toremove=count+1
                        os.system('zenity --info --text="Computers not contacting more than 30 days:%s "' % (computer["hostname"]))
                        #print "Needs to be deleted" #Control Variable

                        spamwriter.writerow((computer["id"], computer["hostname"], computer["title"], computer["last_ping_time"], "30 Days from last contact machine will be be removed"))
                else:
                        network=str(computer) #list to string
                        ip=network.split("u'ip_address': u'")[1] #1 shows what is after parameters
                        ip=ip.split("'")[0] #0 shows what is before parameters
                        mac=network.split("u'mac_address': u'")[1]
                        mac=mac.split("'")[0] 
                        print mac
                        print ip
                        spamwriter.writerow((computer["id"], computer["hostname"], computer["title"], computer["last_ping_time"], mac, ip)) 
os.system('zenity --info --text="Report is created with name:%s "' % (filename))
4

1 回答 1

0

删除ping = str(ping)行并使用:

if ping is None:
   # no last ping time
于 2013-02-19T16:25:47.573 回答