2014-09-23 115 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]),))