mysql 当表中有记录时,SQL查询在Python脚本中返回None

toiithl6  于 12个月前  发布在  Mysql
关注(0)|答案(2)|浏览(178)

我正在尝试编写一个简单的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

balp4ylt

balp4ylt1#

我解决了问题。显然,当你调用fetchall()时,它并不像Java中的普通getter那样从游标中获取数据,而是从cursor中删除数据。在我的代码中,我首先调用fetchall()来初始化一个变量,然后我试图打印curs2.fetchall()的长度,此时它已经变成了0。这可以很容易地解决,只需在curs2.execute("select prijs from MaterialPrijzenLogs")之后直接添加myList = curs2.fetchall(),并在代码的其余部分使用myList变量而不是curs2.fetchall()。在我最初的问题中,我没有在代码示例中包括top10变量的声明,因为我认为它与问题无关。我编辑了这个问题,以便将来的读者可以很容易地理解这个问题。

neskvpey

neskvpey2#

drop table
使用下拉表每当你得到这个没有错误..

相关问题