Ich versuche, eine CSV-Datei für Zeilen mit doppelten Gerätenamen zu suchen. Die Ausgabe sollte das Datum von der ersten übereinstimmenden Zeile aufzeichnen und auch das Datum von der letzten gefundenen Zeile aufzeichnen. Ich brauche etwas Hilfe bei der Logik, doppelte Gerätenamen aus der CSV-Datei zu entfernen, während ich gleichzeitig eine Aufzeichnung darüber mache, wann ein Gerät zuerst und zuletzt gesehen wurde.Suche CSV für übereinstimmende Feld und verwenden Anfangsdatum
import time as epoch
# AlertTime, DeviceName, Status
Input = [['14/08/2016 13:00', 'device-A', 'UP'], ['14/08/2016 13:15', 'device-B', 'DOWN'], ['15/08/2016 17:30', 'device-A', 'UP']]
# FirstSeen, LastSeen, DeviceName, Status
Output = []
# Last 48 hours
now = epoch.time()
cutoff = now - (172800)
for i in Input:
AlertTime = epoch.mktime(epoch.strptime(i[0], '%d/%m/%Y %H:%M'))
if AlertTime > cutoff:
Result = [i[0], i[0], i[1], i[2]]
Output.append(Result)
print(Output)
Ausgang (3 Einträge):
[['14/08/2016 13:00', '14/08/2016 13:00', 'device-A', 'UP'], ['14/08/2016 13:15', '14/08/2016 13:15', 'device-B', 'DOWN'], ['15/08/2016 17:30', '15/08/2016 17:30', 'device-A', 'UP']]
gewünschte Ausgabe (2 Einträge):
[['14/08/2016 13:15', '14/08/2016 13:15', 'device-B', 'DOWN'], ['14/08/2016 13:00', '15/08/2016 17:30', 'device-A', 'UP']]
Verwenden Wörterbuch mit 'device' als Schlüssel und' (FirstSeen, LastSeen, Devicename, Status) 'als Wert. –
@VedangMehta vielleicht können Sie das Feld 'DeviceName' weglassen, da es bereits der Schlüssel ist? Ansonsten stimme ich voll und ganz zu. – bdvll
@bdvll Sie haben absolut Recht. –