我正在尝试编写一个简单的Python脚本,从API获取数据,将其存储在MySQL数据库中,并对该数据执行一些计算。我尝试从一个刚刚插入了一些数据的表中获取所有数据,但该查询一直返回None
。
不起作用的部分:
import MySQLdb
db = MySQLdb.connect("localhost", "stijn", "password", "GW2")
curs = db.cursor()
curs.execute("select gw2_id, naam from PrijzenMats")
for record in curs.fetchall():
curs2 = db.cursor()
curs2.execute("insert into MaterialPrijzenLogs(mat,prijs,tijd) values(%s, %s, %s)", (record[1], prijs, tijd))
db.commit()
curs2.execute("select prijs from MaterialPrijzenLogs")
top10 = len(curs2.fetchall())/10
print(str(len(curs2.fetchall())))
最后一次打印始终显示0
,即使在运行脚本之前填充表也是如此。
Full code
2条答案
按热度按时间balp4ylt1#
我解决了问题。显然,当你调用
fetchall()
时,它并不像Java中的普通getter那样从游标中获取数据,而是从cursor
中删除数据。在我的代码中,我首先调用fetchall()
来初始化一个变量,然后我试图打印curs2.fetchall()
的长度,此时它已经变成了0
。这可以很容易地解决,只需在curs2.execute("select prijs from MaterialPrijzenLogs")
之后直接添加myList = curs2.fetchall()
,并在代码的其余部分使用myList
变量而不是curs2.fetchall()
。在我最初的问题中,我没有在代码示例中包括top10
变量的声明,因为我认为它与问题无关。我编辑了这个问题,以便将来的读者可以很容易地理解这个问题。neskvpey2#
drop table
使用下拉表每当你得到这个没有错误..