重複するデバイス名を持つ行をCSVファイルで検索しようとしています。出力には、最初に一致する行の日付が記録され、見つかった最後の行の日付も記録されます。 CSVファイルから重複したデバイス名を取り除くロジックを援助する必要があります。同時に、デバイスが最初に見られたときと最後に見たときの記録を保持します。一致するフィールドのCSVを検索し、初期日付を使用します。
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)
出力(3エントリー):
[['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']]
募集出力(2エントリー):Vedangメータはコメントで言ったように
[['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']]
使用辞書を、ステータス)を値として返します。 –
@VedangMehtaおそらくあなたは既にキーであるので、 'DeviceName'フィールドを省略することができますか?そうでなければ、私は完全に同意する。 – bdvll
@bdvllあなたは絶対に正しいです。 –