首页 > 解决方案 > 比较 Python 中的 SQL 字段

问题描述

我正在尝试在 Python 中构建一个 selenium 测试,该测试仅在 SQL 数据库中设置标志时执行。

我的数据库中此特定字段的值当前为“False”,因此它应该打开开关,但它与我的代码无关:

connection = pypyodbc.connect('Driver={SQL Server};'
                              'Server=MYSERV\SQL2;'
                              'Database=MyDB;'
                              'uid=sa;pwd=sa')

cursor = connection.cursor()
cursor.execute('SELECT Value FROM SystemSettings where ID = 20063')
for row in cursor:
    if row == "False":
        option = driver.find_element_by_xpath('//*[@id="divFileProcessingSettings"]/div[17]/div/label/span')
        option.click()
    else:
        break
connection.close()

标签: pythonsql-server

解决方案


真快,你做了什么测试?

这是if row == "False":在执行吗?您是否添加了一个快速打印语句来查看条件是否正在执行?

如果您已经完成了上述操作并且条件没有执行,您是否查看过Row in cursor:返回的输出?

我不记得我的头顶,但我相信光标会为你返回一个元组。您需要将元组解压缩为实际变量而不是进行比较。你本质上是在做 ('False',) == "False"。

您可以通过简单地将比较更改为 row == ('False',) 来测试它,这可能会起作用,但您可能应该解压缩元组

尝试

f, _ = row 
if f == "False":

推荐阅读