带有内连接查询的web.py数据库

时间:2014-02-07 15:12:59

标签: python mysql sql object web.py

我正在使用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作为字典访问。

我该怎么办?

1 个答案:

答案 0 :(得分:2)

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']