【问题标题】:web.py databasing with inner join queries带有内部连接查询的 web.py 数据库
【发布时间】:2014-02-07 15:12:58
【问题描述】:

我正在使用 web.py 并有以下数据库调用。

results = db.query("""SELECT users.EMAIL, credentials.STATUS
                       FROM users
                       INNER JOIN credentials
                       ON users.ACCOUNT_ID = credentials.ACCOUNT_ID
                       WHERE credentials.API_KEY=%s""" % api_key)

当我尝试访问结果时,我遇到了各种错误:

>> for i in results:
>>        print i
>> print results[0]['EMAIL']
>> print results[0]['STATUS']
IndexError: already passed 0

如果我删除打印语句,我会得到以下信息:

Storage {'STATUS': u'ACTIVE', 'EMAIL': u'testuser@gmail.com'}

但我无法将results 作为字典访问。

我该怎么办?

【问题讨论】:

    标签: python mysql sql object web.py


    【解决方案1】:

    db.query 方法的返回值的行为类似于序列,但它基本上是迭代器。 (准确的说是web.utils.IterBetter object

    Python 中的迭代器通常不能后退。

    在迭代时对行做一些事情。

    for row in results:
        print row['EMAIL']
        print row['STATUS']
    

    或将结果作为序列来随机访问它:

    results = list(results)
    print results[0]['EMAIL']
    print results[0]['STATUS']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-11
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 2012-07-24
      • 2012-11-08
      相关资源
      最近更新 更多