Python - 在配置文件的值中使用%s

时间:2017-12-08 10:39:53

标签: sql python-3.x ini

我使用配置文件(类型.ini )来保存我的SQL查询,然后通过其密钥获得查询。一切正常,直到用参数创建查询,例如:

;the ini file

product_by_cat = select * from products where cat =%s

我用:

config = configparser.ConfigParser()
args= ('cat1')
config.read(path_to_ini_file)
query= config.get(section_where_are_stored_thequeries,key_of_the_query)
complete_query= query%args

我收到错误:

  

TypeError:并非在字符串格式化期间转换所有参数

因此它尝试在从ini文件中检索值时格式化字符串。 我问题的任何提议。

2 个答案:

答案 0 :(得分:0)

您可以使用format这样的功能

ini文件

  product_by_cat = select * from products where cat ={}

蟒:

 complete_query= query.format(args)

答案 1 :(得分:0)

取决于ConfigParser(Python 2或Python 3)的版本,您可能需要将%加倍,否则会引发错误:

product_by_cat = select * from products where cat =%%s

虽然更好的方法是使用配置解析器的原始版本,但%字符不被解释

config = configparser.RawConfigParser()