当参数可以变化时,有没有一种方法可以用string.format()
动态格式化字符串?我想写一个函数,其中的输入是一个SQL字符串和一个名-值对的字典;两个输入可以不同。在
例如,SQL字符串可能是
"select * from students where school={schoolArg} and age={ageArg}"
字典是{schoolArg: "some school", ageArg: 10}
另一个SQL字符串可能是
^{pr2}$字典是{classArg: "history"}
……等等。在
我可以毫无问题地使用string.replace()
。但是,是否可以使用string.format()
,在这里参数是事先不知道的?在
注意,您正在使用的任何数据库包都已经包含了这个的功能,与使用基本字符串格式相比,这将更加健壮(例如适当地引用/转义(相当糟糕)和SQL注入(very bad))。在
参见例如How to use variables in SQL statement in Python?
不要自己动手,使用数据库API。在
话虽如此,你几乎已经做到了:
(如果语法不熟悉,请参阅What does ** (double star) and * (star) do for parameters?)
请注意,为了强调上述要点,您没有正确引用模板字符串,因此输出不是有效的SQL查询。在
相关问题 更多 >
编程相关推荐