执行查询,然后在 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
。
为了更好地理解这一点,请使用内置函数 type
和 dir
进行探索:
type(cursor)
dir(cursor)
type(cursor.execute(query))
dir(cursor.execute(query))
如果我写,
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
。
为了更好地理解这一点,请使用内置函数 type
和 dir
进行探索:
type(cursor)
dir(cursor)
type(cursor.execute(query))
dir(cursor.execute(query))