我正在使用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。
答案 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])