问题发生的代码:
require "minitest/autorun"
require_relative "close_but_no_func.rb"
class TestWinningNumbers < Minitest::Test
def test_1_equals_1
assert_equal(10-5, 3+2)
end
def test_winning_num
my_num = "1134"
arr=["6028","2088","3058","3476","8740","1134"]
assert_equal(["1134"], match(my_num, arr))
end
end
我发送一个字符串,一个int和一个字符串。最后一个参数必须有单引号导致SQL SERVER语法,但python在每个单引号之前放置双反斜杠。 例如
def updateEmpresaSetXEqualsToByCnpj(self, nomeColuna, valor, cnpj):
query = (r"UPDATE empresa_cliente SET {0} = {1} WHERE cnpj_emp = '{2}';".format(nomeColuna, valor, cnpj))
正确的查询应该是
UPDATE empresa_cliente SET regime_tributacao_federal = 1 WHERE cnpj_emp = \\'33333222000111\\';
答案 0 :(得分:2)
r"UPDATE empresa_cliente SET {0} = {1} WHERE cnpj_emp = '{2}';"
r""
暂停转义序列。如果您正在以交互方式工作并使用r""
在写入文件时不要担心双\\
,那么它只会使用\
检查print
。{ / p>
第二个字符串:
'UPDATE empresa_cliente SET regime_tributacao_federal = 1 WHERE cnpj_emp = \\\'33333222000111\\\';'
这是你可能没注意到的:
>>> "\\\'wwww"
"\\'wwww"
>>> print("\\\'wwww")
\'wwww
如果你愿意的话,把它改成这个,它基本上可以在美学上更好:
"UPDATE empresa_cliente SET regime_tributacao_federal = 1 WHERE cnpj_emp = '33333222000111';"
你也可能在将字符串写入别处之前将字符串传递给另一种格式,然后检查它。