错误检查/处理Web API调用中的缺失值

时间:2018-12-28 23:15:06

标签: python json api parsing

我正在开发一个用于从服务器检索天气数据的应用程序。每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
        ]
    ]
}

]

0 个答案:

没有答案