2015-12-11 32 views
0

我從Python查詢一個Postgres數據庫(熟悉任何人的nfldb),並想將我的查詢條件之一作爲一個變量來簡化我的數據收集。我使用爲什麼我的Python for循環返回相同的第一個值X次而不是唯一值?

import nfldb 
db = nfldb.connect() 
q = nfldb.Query(db) 
for i in range (1,15): 
    q.game(season_year=2015, season_type='Regular', week=i) 
    q.player(full_name='Julian Edelman') 
    print p.player.full_name, p.receiving_yds, p.receiving_tds 

的代碼,我希望它可以返回每星期的統計,但它返回的第一個星期的統計14倍。當我將week = i更改爲顯式數字時,它會按照我的預期返回統計數據。爲什麼會發生這種情況?

+2

發佈您的其他代碼。 – tzaman

+1

最新的p爲?它叫什麼?不應該像q.player.full_name,等? – ivan

回答

0

你這裏的問題將是困難的,不熟悉nfldb回答,因爲.game命名是可用於進一步篩選查詢qnfldb一個特殊的功能。

通過將查詢範圍縮小到一週,您可以授予nfldb放棄所有其他非擬合數據的權限。所以,當你重複你的循環,並要求下週,你要求的數據,你剛纔告訴nfldbq丟棄。

如果您希望單獨對每週進行相同的查詢,則需要將q = nfldb.Query(db)放在for循環中,以重置查詢以數據庫中所有可用數據開始的期望值。

import nfldb 
db = nfldb.connect() 
for i in range (1,15): 
    q = nfldb.Query(db) 
    q.game(season_year=2015, season_type='Regular', week=i) 
    q.player(full_name='Julian Edelman') 

至於其他提到的,雖然,你是因爲缺少p從這個代碼塊的東西有人出現無章可循。

+1

感謝您的回覆。 – Lovedeep

相關問題