All*_*lan 4 python database boolean
我正在编写一个模块来处理从Python发送到数据库的数据.由于boolean不是SQL数据类型,因此必须将这些值转换为某个预定义值.我决定在定义表时,我会在varchar(1)字段中使用'T'和'F'作为我的布尔值.
在尝试使用Pythonic时进行此转换时,我进行了直接比较并对结果采取了行动,如下所示:
if SQLParameters[i] == True:
SQLParameters[i] = 'T'
elif SQLParameters[i] == False:
SQLParameters[i] = 'F'
Run Code Online (Sandbox Code Playgroud)
这是在不管类型的情况下运行的代码,因此如果SQLParameters[i]是1或"Blarg"或123,我只想不管它,而当它是布尔值时,我需要执行转换.
这工作得很好,直到我试图插入实际值1(一),此时我学会了1 == True = True.我可以清楚地看到这个问题的两种可能的解决方案:
有没有人知道如何在不更改数据字典或显式检查类型的情况下完成此操作?
你可以使用is:
if SQLParameters[i] is True:
SQLParameters[i] = 'T'
elif SQLParameters[i] is False:
SQLParameters[i] = 'F'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1229 次 |
| 最近记录: |