我正在尝试使用mysql-flask python扩展来执行一些sql.由于某种原因,下面的代码总是返回long.
stringify = lambda x : '"' + x + '"'if request.method == 'POST': sql = "select * from users where username = " + stringify(request.form['username']) user = g.db.cursor().execute(sql).fetchall()
错误:
user = g.db.cursor().execute(sql).fetchall()AttributeError: 'long' object has no attribute 'fetchall'
为什么不返回结果集?
另外,我可以很好地执行insert语句.
修复(答案):
def get_data(g,sql): cursor = g.db.cursor() cursor.execute(sql) data = [dict((cursor.description[IDx][0],value) for IDx,value in enumerate(row)) for row in cursor.fetchall()] return data
最佳答案你试图在Cursor.execute的结果上调用一个方法,DB-API specification所说的是未定义的(你正在使用的实现似乎返回一个整数).相反,您希望在游标对象上调用fetchall.就像是:cursor = g.db.cursor()cursor.execute(sql)user = cursor.fetchall()
总结 以上是内存溢出为你收集整理的python – AttributeError:’long’对象没有属性’fetchall’全部内容,希望文章能够帮你解决python – AttributeError:’long’对象没有属性’fetchall’所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)