我刚开始使用Python,我不明白怎样才能将正确的输入发送到查询中。
list_of_names = []
for country in country_name_list.keys():
list_of_names.append(getValueMethod(country))
sql_query = f"""SELECT * FROM table1
where name in (%s);"""
db_results = engine.execute(sql_query, list_of_names).fetchone()
Give the error " not all arguments converted during string formatting"
2条答案
按热度按时间xwmevbvl1#
正如John Gordon的注解所暗示的,SQL语句中占位符的数量应该与列表中元素的数量匹配。但是SQLAlchemy 2.0+不再接受原始SQL语句。
pqwbnv8z2#
如果我没猜错的话,有一个更简单的解决方案。如果你写花括号{},而不是花括号(),并且你在花括号里面放一个变量,包含%s值,应该可以工作。我不知道sql是怎么工作的,但是你应该每边用一个,而不是三个。
对不起,我不是英语。从这一点来看,也许我对这个问题没有帮助,因为我没有正确理解。