mysql db 的 Python 结果与实际值不匹配 : comparison of values

标签 python mysql

我有一个程序,我将在其中将代码生成的哈希值与 mysql 数据库中的哈希值进行比较。

因此,在生成检查值后,我有:

hash to be compared: 78ff0103440dcea01f36438a71bdf28f 
hash value from db: (('78ff0103440dcea01f36438a71bdf28f',),)

来自数据库的哈希值是通过使用以下内容输出的:

db_hash.fetchone()

这就是为什么它包含 (('',),) 符号。

但是我尝试将相同的符号与要比较的哈希值一起附加,但它仍然无法正确等同。

我很困惑,因为它应该只是通过

进行简单比较
if hash == result:
 do some code
else:
 do some code

如果您知道这是什么,请回答:)

最佳答案

Python 的 MySQL 适配器以值的元组形式返回行 - 在这种情况下,您将收到一行、一列的完整结果集。要获取其,只需执行以下操作:

dbResult # this is (('78ff0103440dcea01f36438a71bdf28f',),)
dbResult[0][0] # this is '78ff0103440dcea01f36438a71bdf28f'

当然,如果您的查询不同(或没有返回任何行),则会引发错误。理想情况下,您应该首先检查返回的行数 (len(dbResult))。每行的列数将保持一致。

关于mysql db 的 Python 结果与实际值不匹配 : comparison of values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12712532/

相关文章:

python - 防止异常终止 Python 迭代器

Python嵌套导入 'ModuleNotFound'错误

python - 从 gcloud ml-engine 作业访问 Big Query

mysql - 无法显示不同表中的列

javascript - AngularJS 不显示 MySQL 结果 *已编辑

python - 如何使用 JSON 对全局 Python 变量进行编码?

python - Django模板过滤器、标签、simple_tags和inclusion_tags

php - MySQL小写比较数据

Mysql 替换所有 id 以形成正确的序列

mysql - 如何在mysql中将列类型从文本更改为日期