時間とそれに対応する情報を含むネストされたリストがあり、互いに 1 秒ずつ続く時間のブロックの先頭から 1 行を抽出しようとしています (例: 10:04:23,10:04:24, 10:04:25..)。これらの小さなブロックがたくさんあるはずです。私が持っているものが正しい行にあるかどうかはわかりません。正しい場合は TypeError が発生し、それを回避する方法がわかりません。
これは、ある地域への動物の訪問に関するデータで、1 秒ごとに記録されます。私の目的は、訪問ごとに 1 つの記録のみを作成することです。したがって、次の時間のブロックの最初の行です。
previous_and_next はここから盗まれます
data=[['07/11/2012', '09:53:36', 'U', '#0F', '0006E7895B', 'T', 'U\n', '09:53:36'],
['05/13/2012', '09:54:27', 'U', '#0F', '0006E3DADA', 'T', 'U\n', '5031', '09:54:27'] etc]
#define a function to get previous and following values
from itertools import tee, islice, chain
def previous_and_next(some_iterable):
prevs, items, nexts = tee(some_iterable, 3)
prevs = chain([None], prevs)
nexts = chain(islice(nexts, 1, None), [None])
return zip(prevs, items, nexts)
#convert times to datetime objects
for d in data:
try:
f=datetime.datetime.strptime(d[1],'%H:%M:%S')
g=f.strftime('%H:%M:%S')
d.append(g)
except:
pass
new_list=[]
for prev,item,next in previous_and_next(data):
aftersecond=item[1]+datetime.timedelta(seconds=1)
if next[1]==aftersecond: #if next time is this time plus a second
this=True
else:
this==False
while this==True:
continue
else:
new_list.append(data)
aftersecond は を上げTypeError: Can't convert 'datetime.timedelta' object to str implicitly
ています。これは理解できますが、回避する方法がわかりません。このコードが私がやりたいことを実行するかどうかさえ確信が持てません。
ご協力ありがとうございました!