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

时间:2017-02-22 21:48:07

标签: python mysql sql pysqlite

我正在使用PyMySQL来ping数据库并获取值。我这样做是这样的:

   cursor.execute(/*SQL Statement*/)
   result = cursor.fetchone()
   print (result)

我测试过这个并且工作正常。现在的问题是我试图获得元组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

我找不到很多关于PyMySQL的文档,但是看起来对我来说这也很合理,所以我不确定为什么它不起作用。这是我跟随的example

1 个答案:

答案 0 :(得分:1)

当您使用.fetchone()时,它会返回一个字典,其中每个值都映射到一个特定的键,该键通常是SQL数据库中列的名称。所以你的代码应该是这样的:

 cursor.execute(/*SQL Statement*/)
 result = cursor.fetchone()
 print (result[key])

如果您不知道密钥是什么,那么只需print (results),它将打印出包含所有密钥及其相应值的整个字典。

另请注意,如果您的查询返回多行,则应使用.fetchall()返回字典列表,这样您首先需要选择一个元组然后给它一个键。

 cursor.execute(/*SQL Statement*/)
 result = cursor.fetchone()
 print (result[index][key])