Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何返回由.fetchone()返回的元组中的单个元素?_Python_Mysql_Sql_Pysqlite - Fatal编程技术网

Python 如何返回由.fetchone()返回的元组中的单个元素?

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]

我正在使用PyMySQL ping一个数据库,并获取返回的值。我是这样做的:

   cursor.execute(/*SQL Statement*/)
   result = cursor.fetchone()
   print (result)
我测试了这个,效果很好。现在的问题是,我试图只获取tuple
result
中的第一个元素,我尝试这样做:

   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()
不是返回元组,而是返回一个。至于这是为什么,我不太清楚。