Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';我不能用python获取sql语句吗?_Python_Sql_Mysql - Fatal编程技术网

为什么可以';我不能用python获取sql语句吗?

为什么可以';我不能用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",

我有一个非常大的表(374870行),当我运行下面的代码时,时间戳就是一个长int,值为374870。。。。我希望能够抓取表中所有的时间戳。。。但我得到的只是一个长int:S

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