Doğru, bu yüzden this HubSpot endpoint aracılığıyla yaklaşık 26.000 not yükledim ve yüklenen notların bir demetinin çok yanlış zaman damgası olduğunu fark ettim (örneğin, arka tarihli olmak yerine) ya da güncel olarak, geleceğe doğru akıtılıyorlar.Değişken İnterpolasyon, Delorean işlevlerinin sonucunu değiştirir
Sorunu, zaman damgasını zaman damgasını ayrıştırıp dönüştürmeyi kolaylaştırmak için Delorean modülünü kullanan kodun bir bölümüne geri izledim. Sorun, .format()
işlevi aracılığıyla değişken enterpolasyon kullandığımda, bir şekilde bir şey değişiyor gibi görünüyor.
Örnek 1 - Interpolasyon yok.
def ref_date_epoch():
parseDate = parse("29/04/2014 00:00:00 -0700")
getEpoch = parseDate.epoch
shiftEpoch = epoch(getEpoch).shift("US/Eastern")
convertEpoch = shiftEpoch.epoch
testing = int(convertEpoch)
return "{testing}000".format(testing=testing)
print(ref_date_epoch())
sys.exit()
Yukarıdaki örnek doğru tarihi içine dönüştürür dönem zaman damgası olarak 1398754800000
döner - 29/04/2014
.
Örnek 2 - Enterpolasyon ile.
def ref_date_epoch(datestr):
if len(datestr) > 0:
parseDate = parse("{csvDate} 00:00:00 -0700".format(csvDate=datestr))
getEpoch = parseDate.epoch
shiftEpoch = epoch(getEpoch).shift("US/Eastern")
convertEpoch = shiftEpoch.epoch
testing = int(convertEpoch)
return "{testing}000".format(testing=testing)
else:
None
print(ref_date_epoch(row[2]))
sys.exit()
Bu kez, yukarıdaki örnek, gerçekten çok yanlış çağ zaman damgası gibi 1597302000000
döndürür - bu 13/08/2020
olmak biter. Ayrıntılı olarak, datestr
argümanı, tarihi içeren bir csv içindeki satırın dizinine referans veren row[2]
listesini kabul ediyor. .format()
fonksiyonu olmadan
Örnek 3.:
def ref_date_epoch(datestr):
if len(datestr) > 0:
parseDate = parse(datestr)
getEpoch = parseDate.epoch
shiftEpoch = epoch(getEpoch).shift("US/Eastern")
convertEpoch = shiftEpoch.epoch
testing = int(convertEpoch)
return "{testing}000".format(testing=testing)
else:
None
print(ref_date_epoch(row[2]))
sys.exit()
Bu hala 1597276800000
döndürür. Görünüşe göre, tarihe dolaylı olarak gönderme yapmak, zamanı değiştiriyor gibi görünüyor. Ne verir?
Bunların hepsinden bahsetmişken - Delorean'ın bu şekilde çalışmasını sağlamak için bir yol yoksa, bir tarih dizesini milisaniye ile zaman damgasına dönüştürmenin bir yolu var mı?
Düzenleme: Ayrıca, birçok notun da doğru olduğunu belirtmeyi unuttum - komut dosyasını çalıştırdığım bilgisayar, epoch zaman damgasının oluşturulmasını etkiler mi? . Bir kötü biçimlendirilmiş CSV bir karışımı (Şimdi bu kullanıyorum yerine dd/mm/yyyy
ve dolambaçlı kod dd/mm/yy
kullanarak gibi