执行查询,然后在pymysql python中获取结果

时间:2018-06-22 02:16:35

标签: python pymysql

如果我写,

cursor=db.cursor(pymysql.cursors.DictCursor)
cursor.execute(query)
result=cursor.fetchall()
print(result)

这有效并将结果打印为字典。

但是如果我这样写,

cursor=db.cursor(pymysql.cursors.DictCursor)
result=cursor.execute(query).fetchall()
print(result)

它给我错误:

Traceback (most recent call last):
  File "senti4SDanalyze.py", line 22, in <module>
    constructMaleResults()
  File "senti4SDanalyze.py", line 12, in constructMaleResults
    result=cursor.execute(query).fetchall()
AttributeError: 'int' object has no attribute 'fetchall'

那是为什么?

1 个答案:

答案 0 :(得分:1)

result=cursor.fetchall()中,方法fetchall在对象cursor上被调用。

result=cursor.execute(query).fetchall()中,fetchall方法返回的对象(或本机类型)上正在调用方法execute

要更好地理解这一点,请使用内置的typedir进行探索:

type(cursor)
dir(cursor)
type(cursor.execute(query))
dir(cursor.execute(query))