在python中使用MySQL booleans

2024-05-15 09:39:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中查询MySQL数据库并选择一个布尔值——因此MySQL的响应要么是字符串'True'要么是'False'。我想根据MySQL的布尔值执行更多的代码。

例如

data = 'False'  # assume this is what was returned by MySQL.
if data:
  print 'Success'  #really this would be where I would execute other if True.
else:
  print 'Fail'  #really this would be where I would execute other code if False

但我不能这么做是因为

if data:

永远都是真的

那么如何在python中将MySQL返回的字符串转换为布尔值呢?

目前我有:

data = 'False'  # assume this is what was returned by MySQL.
if data == 'True':
  print 'Success'
else:
  print 'Fail'

我相信在python中一定有更好的方法来实现这一点——很可能我遗漏了一些简单的东西。


Tags: 字符串falsetruedatabyifismysql
3条回答

如果列始终是实际字符串"False""True"(与整数或其他内容相反)之一,则我建议在以下方面进行一些更改:

value = {'False' : False, 'True' : True}[data]

如果您的db连接不知道如何为您转换值,则需要使用更好的连接。这不应该是你自己需要做的事情。如果这些不是实际的布尔值,而是仅存储0或1的int列,则应修复架构。或者,如果您总是得到值'True'和'False',可能是您无意中将其转换为字符串的某个地方?

MySQL中的Boolean是TINYINT(1)。检查1或0可能有效

相关问题 更多 >