我有一个 Pyhton 脚本,它从本地 MySql 表中提取单元格值,但数据与字符串不同。
例如,mysql值= fromme@server.com
我原来运行良好的工作方法是这样写的:
chatFrom = 'fromme@server.com'
然后我在执行函数中使用了这个变量,如下所示:
chat.main(['-c', chatTo, '-u', chatFrom, '-p', chatPass, '-m', chatMessage])
现在我想通过使用 MySql 表使变量动态化:
chatToCursor = (cursor.execute('SELECT value from configuration WHERE label = "chatTo"'))
chatTo = cursor.fetchone()
然后在完全相同的执行函数中使用它,但我遇到的问题是这些值在某种程度上不相同。 Python 提示在值中使用“@”。之前,它根本没有提示,因为我想这是因为“chatTo”本来是一个字符串,所以没关系。
所以即使我使用 str(chatTo) python 仍然会提示@。
执行命令的语法如下:
chat.main(['-c', 'to@server.com', '-u', 'user@server.com', '-p', 'pass', '-m', 'message'])
所以在我的变量中,单引号也让我很困惑。我该如何写才能使MySql游标与标准字符串相同?
最佳答案
cursor.fetchone()
始终返回一个元组,即使只有一个元素要返回。因此,您的 chatTo
变量实际上是 ('to@server.com',)
。
您需要显式获取第一个元素:
chatTo = cursor.fetchone()[0]
关于Python数据之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590502/