Python 2.7 Xively读取Python中的数据

Python 2.7 Xively读取Python中的数据,python-2.7,xively,Python 2.7,Xively,我已经编写了一个Python2.7脚本来从Xively检索我的所有历史数据 最初我是用C#写的,它工作得很好 我将请求限制为6小时块,以检索所有存储的数据 我的Python版本如下: requestString=''+requestDate+'&持续时间=6小时&间隔=0&每页=1000'响应=urlib2.urlopen(requestString.read()) 请求日期的格式正确,我比较了完整的c#requestString版本和python版本 使用上面的请求,我只得到101行数据,这相

我已经编写了一个Python2.7脚本来从Xively检索我的所有历史数据

最初我是用C#写的,它工作得很好

我将请求限制为6小时块,以检索所有存储的数据

我的Python版本如下:

requestString=''+requestDate+'&持续时间=6小时&间隔=0&每页=1000'响应=urlib2.urlopen(requestString.read())

请求日期的格式正确,我比较了完整的c#requestString版本和python版本

使用上面的请求,我只得到101行数据,这相当于几分钟的结果


我怀疑它是.read()函数,它返回大约34k个字符,远远少于c#版本。我尝试将100000作为参数添加到ad函数中,但结果没有改变。

留下了另一个用Python 2.7编写的解决方案

在我的例子中,每30分钟获取一次数据,因为许多传感器每分钟发送一次值,而Xively API将半小时的数据限制在此发送频率内

它是通用模块:

for day in datespan(start_datetime, end_datetime, deltatime): # loop increasing deltatime to star_datetime until finish
    while(True): # assurance correct retrieval data 
        try: 
            response = urllib2.urlopen('https://api.xively.com/v2/feeds/'+str(feed)+'.csv?key='+apikey_xively+'&start='+ day.strftime("%Y-%m-%dT%H:%M:%SZ")+'&interval='+str(interval)+'&duration='+duration) # get data
            break
        except:
            time.sleep(0.3)
            raise # try again
    cr = csv.reader(response) # return data in columns
    print '.'
    for row in cr:
        if row[0] in id: # choose desired data
            f.write(row[0]+","+row[1]+","+row[2]+"\n") # write "id,timestamp,value"
您可以在此处找到完整的脚本:

希望您能提供帮助,很高兴回答任何问题:)