标签:sqlite datetime python regex
我有一个函数,该函数针对通过For循环发生的事件生成时间戳.
功能和RAW时间戳
def atimer ():
timenow = time.time()
return(timenow)
print timenow
1434615010.27858
时间戳看起来像这样的“ 1434615010.27858”,它在sqlite3中适合数据库使用.当我使用datetime转换时间戳时,我得到了正确的时间声明(见下文).
已转换
>>> print datetime.datetime.fromtimestamp(1434615010.27858)
2015-06-18 10:10:10.278580
这个极其有效的问题的问题在于,我涌入了一些事件,这些事件显示为以下时间戳打印输出.
2015-06-18 11:36:57.830000
2015-06-18 11:36:57.830000
2015-06-18 11:36:57.830000
2015-06-18 11:36:59.340000
2015-06-18 11:36:59.340000
2015-06-18 11:36:59.340000
2015-06-18 11:37:00.740000
2015-06-18 11:37:00.740000
2015-06-18 11:37:00.740000
2015-06-18 11:37:02.130000
我想彼此比较时间戳,然后仅在给定的分钟内将第一个时间戳提交到数据库(SQL UPDATE).
问题> Regex是我唯一的选择吗,还是我可以调低此时间戳本身,以免给我这么详细的时间戳?
信息:我选择此时间戳记的主要原因是它很小,并且在数据库中占用的空间更少,尤其是当您处理1000个时间戳记时.
以下是我想获得的输出…
2015-06-18 11:36
2015-06-18 11:37
提前致谢
解决方法:
为什么不将它们放入字典中,那样每分钟您只会得到一个条目:
times = [
'2015-06-18 11:36:57.830000',
'2015-06-18 11:36:57.830000',
'2015-06-18 11:36:59.340000',
'2015-06-18 11:36:59.340000',
]
time_dict = {}
for time in times:
time_dict[(time.split('.'))[0][:-3]] = 1
print(time_dict.keys())
更好的是,您可以在翻译日期之前创建字典.这样,您只需为每个相同的条目执行一次转换:
times = [
'1434615010.27858',
'1434615010.27858',
]
time_dict = {}
for time in times:
time_dict[time] = 1
for time in time_dict.keys():
date = datetime.fromtimestamp(float(time))
print((str(date).split('.')[0])[:-3])
标签:sqlite,datetime,python,regex 来源: https://codeday.me/bug/20191120/2041686.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。