Python 2.7 Xively读取Python中的数据
我已经编写了一个Python2.7脚本来从Xively检索我的所有历史数据 最初我是用C#写的,它工作得很好 我将请求限制为6小时块,以检索所有存储的数据 我的Python版本如下: requestString=''+requestDate+'&持续时间=6小时&间隔=0&每页=1000'响应=urlib2.urlopen(requestString.read()) 请求日期的格式正确,我比较了完整的c#requestString版本和python版本 使用上面的请求,我只得到101行数据,这相当于几分钟的结果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行数据,这相
我怀疑它是.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"
您可以在此处找到完整的脚本:
希望您能提供帮助,很高兴回答任何问题:)