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

标签 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'}

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

我应该做什么?

最佳答案

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

关于python - 带有内连接查询的 web.py 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21631243/

相关文章:

SQL Server 2008 - 高级搜索/排序

python - 从 scikit 学习导入时出现 `ImportError: cannot import name _remove_dead_weakref`

python - 列表中的整数

java - MySQL Java 存储过程给出错误 "Parameter index of 1 is out of range"

mysql - 根据小数和长度更新mysql表列值

java - 如何在没有entryId的情况下更新SQLiteOpenHelper中的条目?

python - 有没有办法将回调与列表的更改相关联?

python - 为什么我不能导入 pg.py?

python - Django ORM 分组依据

mysql - 选择不同表中没有特定值的所有行