我如何 return 由 .fetchone() 编辑的元组 return 中的单个元素?

How can I return a single element in a tuple returned by .fetchone()?

我正在使用 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

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

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

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

此外,请注意,如果您的查询 returns 不止一行,您应该使用 .fetchall() 其中 returns 一个字典列表,因此您首先需要 select 一个元组,然后给它一个键。

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