问题描述
我正在尝试构建一个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 (将#修改为@)