Python 如何返回由.fetchone()返回的元组中的单个元素?
我正在使用PyMySQL ping一个数据库,并获取返回的值。我是这样做的:Python 如何返回由.fetchone()返回的元组中的单个元素?,python,mysql,sql,pysqlite,Python,Mysql,Sql,Pysqlite,我正在使用PyMySQL ping一个数据库,并获取返回的值。我是这样做的: cursor.execute(/*SQL Statement*/) result = cursor.fetchone() print (result) 我测试了这个,效果很好。现在的问题是,我试图只获取tupleresult中的第一个元素,我尝试这样做: cursor.execute(/*SQL Statement*/) result = cursor.fetchone()[0]
cursor.execute(/*SQL Statement*/)
result = cursor.fetchone()
print (result)
我测试了这个,效果很好。现在的问题是,我试图只获取tupleresult
中的第一个元素,我尝试这样做:
cursor.execute(/*SQL Statement*/)
result = cursor.fetchone()[0]
print (result)
但是,这只会给我以下错误:
Traceback (most recent call last):
File "myFile.py", line 20, in <module>
result = cursor.fetchone()[0]
KeyError: 0
回溯(最近一次呼叫最后一次):
文件“myFile.py”,第20行,在
结果=cursor.fetchone()[0]
关键错误:0
我找不到太多关于PyMySQL的文档,但我觉得这很有道理,所以我不确定为什么它不起作用。以下是我所说的。当您使用
.fetchone()
时,它返回一个字典,每个值映射到一个特定的键,该键通常是SQL数据库中列的名称。因此,您的代码应该如下所示:
cursor.execute(/*SQL Statement*/)
result = cursor.fetchone()
print (result[key])
如果您不知道键是什么,那么只需打印(结果),它就会打印出包含所有键及其对应值的整个字典
另外,请注意,如果查询返回多行,则应使用.fetchall()
,它返回字典列表,因此首先需要选择一个元组,然后给它一个键
cursor.execute(/*SQL Statement*/)
result = cursor.fetchone()
print (result[index][key])
你错了
cursor.fetchone()
不是返回元组,而是返回一个。至于这是为什么,我不太清楚。