我正试图从PySimpleGUI字段中的值编译SQL更新查询。我使用串联的f字符串来完成这一操作。
如果任何字段为空,则必须将"DEFAULT"替换为值。为此,我尝试使用conditional_expressions,例如:
update_cust_qry = "UPDATE `d_base`.`Customers` SET " +
f"Contact = '{'DEFAULT' if values['_CONTACT_'] = '' else values['_CONTACT_']}'," +
f"WHERE Customer = '{values['_CUSTOMERS_'][0]}'"
不幸的是,Python-3将这样的构造声明为语法错误。
你能告诉我一个正确的方法吗?
非常感谢
梅尔
代码中的一个小错误:在if
条件中使用了=
而不是==
。我用值容器的推断结构尝试了同样的构造,但没有得到语法错误,所以错误在于逻辑,而不是f字符串。
values = {'_CONTACT_': "", '_CUSTOMERS_': [1,2,3]}
str = f"Contact = '{'DEFAULT' if values['_CONTACT_'] == '' else values['_CONTACT_']}'," +
f"WHERE Customer = '{values['_CUSTOMERS_'][0]}'"
print(str)
输出:
Contact = 'DEFAULT',WHERE Customer = '1'
现在我尝试使用:values = {'_CONTACT_': "test", '_CUSTOMERS_': [4]}
输出:
Contact = 'test',WHERE Customer = '4'