2014-02-07 56 views
0

我正在使用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'[email protected]'} 

,但我無法訪問results作爲字典。

我該怎麼辦?

回答

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