我使用以下代码从tempodb数据库读取值:
import datetime
from tempodb import Client
client = Client("key", "secret")
start = datetime.datetime(2014, 3, 28)
end = datetime.datetime(2014, 3, 29)
data = client.read_key("custom", start, end, interval="1hour", function="mean")
print data代码工作正常,并获得数据点。但是,它以'DataSet'格式获得它们,这是TempoDB对数据点的格式。但是他们没有展示如何将这种格式转换成实际的坐标或数字。下面是代码返回的数据:
{'series': <tempodb.base.Series object at 0x2500df0>,
'summary': <tempodb.base.Summary object at 0x250acb0>,
'end': datetime.datetime(2014, 3, 29, 0, 0, tzinfo=tzutc()),
'data': [<tempodb.base.DataPoint object at 0x250a2b0>,
<tempodb.base.DataPoint object at 0x250a270>,
<tempodb.base.DataPoint object at 0x250aa50>,
<tempodb.base.DataPoint object at 0x250a9f0>,
<tempodb.base.DataPoint object at 0x250aad0>,
<tempodb.base.DataPoint object at 0x250ab30>,
<tempodb.base.DataPoint object at 0x250ab90>,
<tempodb.base.DataPoint object at 0x250abf0>,
tempodb.base.DataPoint object at 0x250ac50>],
'start': datetime.datetime(2014, 3, 28, 0, 0, tzinfo=tzutc())}有人知道如何将此格式(DataSet)转换为实际坐标吗?
编辑:
以下是我的当前代码:
import datetime
from tempodb import Client
client = Client("key", "secret")
start = datetime.datetime(2014, 3, 28)
end = datetime.datetime(2014, 3, 29)
data = client.read_key("custom", start, end, interval="1hour", function="mean")
print data
for point in data['data']:
print(point.value)这将使用TypeError输出以下内容
{'series': <tempodb.base.Series object at 0x15dae30>, 'summary': <tempodb.base.Summary object at 0x15e4d30>, 'end': datetime.datetime(2014, 3, 29, 0, 0, tzinfo=tzutc()), 'data': [<tempodb.base.DataPoint object at 0x15e4910>, <tempodb.base.DataPoint object at 0x15e42d0>, <tempodb.base.DataPoint object at 0x15e4ab0>, <tempodb.base.DataPoint object at 0x15e4ad0>, <tempodb.base.DataPoint object at 0x15e4b70>, <tempodb.base.DataPoint object at 0x15e4bd0>, <tempodb.base.DataPoint object at 0x15e4c10>, <tempodb.base.DataPoint object at 0x15e4c70>, <tempodb.base.DataPoint object at 0x15e4cd0>], 'start': datetime.datetime(2014, 3, 28, 0, 0, tzinfo=tzutc())}
Traceback (most recent call last):
File "readtempo.py", line 10, in <module>
for point in data['data']:
TypeError: 'DataSet' object has no attribute '__getitem__'发布于 2014-03-31 03:29:02
发布于 2014-04-03 20:54:18
正如@alecxe所提到的,请确保您正在迭代该格式
for point in data.data:TempoDB的DataSet类由两个对象组成: ts (时间戳)和value (点值)。若要访问时间戳和值:
print point.ts.strftime("%b %e, %Y")
print point.value最近,我在芝加哥使用TempoDB进行了一个数据挑战,分析了750,000行自行车使用情况数据。项目结果是这里和GitHub源代码,其中包括TempoDB和这里的TempoDB接口。
https://stackoverflow.com/questions/22753141
复制相似问题