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

executing query and then fetching results in pymysql python

如果我写,

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'

这是为什么?

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

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

为了更好地理解这一点,请使用内置函数 typedir 进行探索:

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