我使用配置文件(类型.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文件中检索值时格式化字符串。 我问题的任何提议。
答案 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()