为什么可以';我不能用python获取sql语句吗?
我有一个非常大的表(374870行),当我运行下面的代码时,时间戳就是一个长int,值为374870。。。。我希望能够抓取表中所有的时间戳。。。但我得到的只是一个长int:S为什么可以';我不能用python获取sql语句吗?,python,sql,mysql,Python,Sql,Mysql,我有一个非常大的表(374870行),当我运行下面的代码时,时间戳就是一个长int,值为374870。。。。我希望能够抓取表中所有的时间戳。。。但我得到的只是一个长int:S import MySQLdb db = MySQLdb.connect( host = "Some Host", user = "SOME USER", passwd = "SOME PASS",
import MySQLdb
db = MySQLdb.connect(
host = "Some Host",
user = "SOME USER",
passwd = "SOME PASS",
db = "SOME DB",
port = 3306
)
sql = "SELECT `timestamp` from `table`"
timestamps = db.cursor().execute(sql)
试试这个:
cur = db.cursor()
cur.execute(sql)
timestamps = []
for rec in cur:
timestamps.append(rec[0])
试试这个:
cur = db.cursor()
cur.execute(sql)
timestamps = []
for rec in cur:
timestamps.append(rec[0])
您需要在光标上调用
来获取多行,或者在循环中调用fetchone()
,直到它返回None
您需要在光标上调用
来获取多行,或者调用fetchone()
在循环中,直到它返回None
为止,请考虑以下可能性:您得到的不是很长的整数是查询结果中的行数
考虑阅读文档()。。。(1) 未定义cursor.execute()的返回值;您所看到的是您的数据库所特有的,出于可移植性的考虑,不应依赖于此。(2) 您需要执行
results=cursor.fetch{one | many | all}()
或在光标上迭代对于游标中的行:执行某些操作(行)
考虑这样一种可能性,即您得到的不是很长的整数是查询结果中的行数
考虑阅读文档()。。。(1) 未定义cursor.execute()的返回值;您所看到的是您的数据库所特有的,出于可移植性的考虑,不应依赖于此。(2) 您需要执行
results=cursor.fetch{one | many | all}()
或在光标上迭代对于游标中的行:dou_something(row)
问题是时间戳最终是一个很长的整数。。。可能是因为我的桌子太大了。所以fetchone()fetchmany()或fetchall()不适用于时间戳,因为长int对象没有这些函数…@Richard,374870实际上不是一个大表。尝试我的答案,您将看到列表时间戳
可以容纳您的数据。如果你告诉我它现在是什么样子,我们可以试着把它转换成你需要的任何格式。@Richard:fetchone和friends是游标方法。请看我的答案。问题是时间戳最终是一个很长的整数。。。可能是因为我的桌子太大了。所以fetchone()fetchmany()或fetchall()不适用于时间戳,因为长int对象没有这些函数…@Richard,374870实际上不是一个大表。尝试我的答案,您将看到列表时间戳
可以容纳您的数据。如果你告诉我它现在是什么样子,我们可以试着把它转换成你需要的任何格式。@Richard:fetchone和friends是游标方法。看看我的答案。这个解决方案很有效,谢谢。对于fetchall()不起作用仍然有点恼火。您可以将我的第四行更改为cur.fetchall()中的rec的:
,它将工作到arg,大脑变得混乱。这就是我搞砸的。获取函数属于游标对象:这一解决方案很有效,谢谢。对于fetchall()不起作用仍然有点恼火。您可以将我的第四行更改为cur.fetchall()中的rec的:
,它将工作到arg,大脑变得混乱。这就是我搞砸的。获取函数属于游标对象:S