2014-09-23 160 views
0

我在使用psycopg2查詢數據庫,並在循環內執行我的查詢。Psycopg2沒有獲取數據庫中存在的所有數據

for i in range(0,len(time)): 
      cur2.execute("SELECT * from obs where ujd=%s;",(time[i],)) 
      m=cur2.fetchall() 
      print time[i], m 

對於某些查詢,數據按我的預期返回。但是,即使我可以從psycopg2外部成功查詢並獲取數據,有時也不會返回任何內容。

例如,當我的循環到達時間[I]的2456146.72784 psycopg2返回一個空數組:[]

如果我執行這個循環的外面並手動放入2456146.72784然後我得到的所有數據我想。

如何成功從循環內查詢?

+1

什麼是列'ujd'和可變'時間[I]'的數據類型? – imran 2014-09-23 18:49:07

+0

...特別是,都是/兩個浮點? – 2014-09-24 02:34:18

+0

感謝您的提示,只需說明'float(time [i])'修復問題。 – ChrisFro 2014-09-24 10:20:59

回答

0

指定數據類型可修復問題。在這種情況下,他們是浮游物。

更改的行:

cur2.execute("SELECT * from obs where ujd=%s;",(time[i],)) 

到:

cur2.execute("SELECT * from obs where ujd=%s;",(float(time[j]),))