我正在开发一个用于从服务器检索天气数据的应用程序。每5分钟更新一次服务器,其中包含来自各个气象站的气象数据。问题是,如果存在连接问题,或者拔出了工作站,则最终会丢失值。该API返回指定的时间戳,两次测量之间的时间步长以及一系列测量。
作为一个示例,如果我尝试在给定的一天(24小时)中每小时获取一个值,则我希望有24个值(一周为168个,为31/30/744为720)。如果存在缺失的测量结果,则减去缺失值是相同的,并且我无法从“值”键的开头,中间或结尾得知它们是否缺失。
我尝试使用较小的时间间隔(一段时间内的每个值-天,周,月)以填补可能丢失的度量之间的差距,但API的请求限制(包括大小限制)要求使较小的时间间隔不适用于较大的时间间隔请求(例如一个月)。
服务器返回的示例-
{
"beg_time"= 1533097205,
"step_time": 3600,
"value":[
[14.7],
[14.6],
[14.5],
...
[14.8]]
}
因此,如果我最终丢失了测量结果并且最终结果少于预期,我将如何开始进行错误检查?理想的结果是将每次测量的数据输入带有时间戳的文件中。缺少值可以,但是我需要知道如何在列表中找到它们。我只能将beg_time与第一个值相关联,每个后续值的时间均为beg_time + step_time。我需要知道丢失值的位置,以便仍然可以将时间戳记添加到文件中,但将度量留空。
不完整响应的完整示例:即使期望24个值,也只有23个值。
[
{
"beg_time": 1533009600,
"step_time": 3600,
"value": [
[
14.6
],
[
15.1
],
[
14.2
],
[
12.8
],
[
11.6
],
[
10.7
],
[
11.5
],
[
16.3
],
[
22.3
],
[
28.2
],
[
29.4
],
[
29.1
],
[
29.3
],
[
29.6
],
[
30.5
],
[
29.7
],
[
28.9
],
[
26.3
],
[
24.8
],
[
23.6
],
[
21.2
],
[
17.9
],
[
15.9
]
]
}
]