0

我有一个 GAE(谷歌应用引擎)应用程序,它每隔 15 分钟解析一次网站。每 15 分钟,cron 将检查BitData()要加载的最旧数据(在这种情况下)的时间戳,并将从该点解析数据,直到utc.now(). 不幸的是,我无法通过查询 NDB 数据库以获取最新BitData()对象的第一部分。

代码示例:

def bitcoincharts_last():
    q = BitData.query()
    q = q.order(BitData.tstamp)
    if q == None:
        return '0'
    else:
        return q[0]

这会在日志中显示错误:

TypeError: order() expects a Property or query Order; received <class 'google.appengine.ext.ndb.model.DateTimeProperty'>

使用q = q.order(-BitData.tsamp)相反的顺序来代替响应给出:

TypeError: bad operand type for unary -: 'type'

我已经根据示例herehere和NDB Google Docs检查了我的代码,但我似乎无法找到查询无法运行的原因。

位数据:

class BitData(ndb.Model):
    key = ndb.KeyProperty
    tstamp = ndb.DateTimeProperty
    price = ndb.IntegerProperty
    amount = ndb.IntegerProperty
4

1 回答 1

3

模型定义应该是:

class BitData(ndb.Model):
    key = ndb.KeyProperty()
    tstamp = ndb.DateTimeProperty()
    price = ndb.IntegerProperty()
    amount = ndb.IntegerProperty()

您只是将 Class 字段定义为指向 ndb Property 类,实际上并没有实例化它们中的任何一个。

于 2013-04-08T05:13:19.897 回答