如何解决按小时存储分区中的数据-Python
我正在尝试构建一个python脚本,以获取两个给定时间戳之间的数据点,并计算接收到的每个数据点之间的差异。
两个时间戳之间接收到的数据点的示例:
{"_id":"1234","objId":"MAC-01","endDateTime":"2020-08-14T08:31:33.429Z","clientId":"CLIENT-01","startDateTime":"2020-08-14T08:30:36.986Z"},{"_id":"1234","endDateTime":"2020-08-14T08:35:33.429Z","startDateTime":"2020-08-14T08:33:36.986Z"}
我需要计算endDateTime和startDateTime之间的差并将其保存在我设法做到的变量中。
现在我的程序每10分钟运行一次,并且每次程序运行时在8:00:00和currentTime之间获取数据点,然后重新计算差异并将其保存在特定变量中。
我需要做的是每次脚本运行时,都希望将其分解为小时格式,因此它应该类似于:
{"hour":"8:00:00","difference":41},{"hour":"9:00:00","difference":56} and so on..
我苦苦挣扎的地方- 每当我的脚本运行时,它将一次性获取从8:00:00到currentTime的所有数据点。如果我每隔一小时进行一次API调用来获取数据,这将变得非常耗费资源,这就是为什么我要一次性获取数据的原因,如何将按小时存储区中接收到的数据进行隔离?
我有一个computeDifference函数,使用所需的参数调用它,如下所示:
def computeDifference(self,cycletimes):
totalDifference = 0
for rt in range(0,len(cycletimes)):
if(cycletimes[rt].has_key("startDateTime") and cycletimes[rt].has_key("endDateTime")):
if(cycletimes[rt]["startDateTime"] is None or cycletimes[rt]["endDateTime"] is None):
totalDifference = totalDifference + 0
else:
difference = (datetime.strptime(cycletimes[rt]["endDateTime"],'%Y-%m-%dT%H:%M:%S.%fZ') - datetime.strptime(cycletimes[rt]["startDateTime"],'%Y-%m-%dT%H:%M:%S.%fZ'))
totalDifference = totalDifference + (difference.total_seconds())
else:
totalDifference = totalDifference + 0
return totalDifference
我的想法是,如果我可以对每小时存储桶中收到的数据点进行排序,那么我可以每小时运行一次以上功能,并更新具有各自差异的列表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。