gpt4 book ai didi

Pythonic boolean 转换

转载 作者:太空狗 更新时间:2023-10-30 01:47:17 24 4
gpt4 key购买 nike

我正在编写一个模块来处理从 Python 发送到数据库的数据。由于 boolean 不是 SQL 数据类型,因此必须将这些值转换为某个预定义值。在定义表时,我决定在 varchar(1) 字段中使用“T”和“F”作为 boolean 值的替代。

在尝试以正确的 Pythonic 方式进行此转换时,我进行了直接比较并对结果采取行动,如下所示:

        if SQLParameters[i] == True:
SQLParameters[i] = 'T'
elif SQLParameters[i] == False:
SQLParameters[i] = 'F'

这是在不考虑类型的情况下运行的代码,所以如果 SQLParameters[i] 是 1 或“Blarg”或 123,我不想管它,而当它是 boolean 值时,我需要执行转换。

在我尝试插入实际值 1(一)之前,它工作得很好,此时我了解到 1 == True = True。对于这个问题,我可以清楚地看到两种可能的解决方案:

  1. 更改数据字典以在 number(1) 字段中使用 0 和 1 作为 boolean 值替代,使转换更简单
  2. 在上面的代码中添加一个条件来检查要转换的参数的实际类型(这让我觉得不符合 pythonic)。

有没有人知道如何在不更改数据字典或显式检查类型的情况下完成此操作?

最佳答案

你可以使用:

if SQLParameters[i] is True:
SQLParameters[i] = 'T'
elif SQLParameters[i] is False:
SQLParameters[i] = 'F'

关于Pythonic boolean 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4027773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com