Python 参数化查询的ConfigParser不工作
我希望通过python程序访问并执行存储在config.ini中的sql查询。在我的程序中显式发出查询是可行的,但config.ini方法不行 以下是有效的方法:Python 参数化查询的ConfigParser不工作,python,sql,pandas,configparser,Python,Sql,Pandas,Configparser,我希望通过python程序访问并执行存储在config.ini中的sql查询。在我的程序中显式发出查询是可行的,但config.ini方法不行 以下是有效的方法: chg_list = tuple(list(df_code['A'])) placeholders=','.join(['?']*len(chg_list)) max_charge = "SELECT code, description FROM test WHERE code IN (%s)" % (place
chg_list = tuple(list(df_code['A']))
placeholders=','.join(['?']*len(chg_list))
max_charge = "SELECT code, description FROM test WHERE code IN (%s)" % (placeholders)
df_chg_max = pd.read_sql(max_charge, oracle_cnxn, params = chg_list)
什么不起作用:
file = 'config.ini'
config = configparser.RawConfigParser()
config.read(file)
max_charge = config.get('CHARGEBACK-LINE','max_charge')
df_chg_max = pd.read_sql(max_charge, oracle_cnxn, params = chg_list)
在配置文件上,条目为:
max_charge = "SELECT code, description FROM test WHERE code IN (%s)" % (placeholders)
为什么ConfigParser不能正确读取sql查询?我猜这与占位符参数的读取方式有关,但似乎不知道如何更正
以下是我在使用ConfigParser方法时遇到的错误:
pandas.io.sql.DatabaseError: Execution failed on sql '"SELECT code, description FROM test WHERE code IN (%s)" % (placeholders)': ('The SQL contains 0 parameter markers, but 1 parameters were supplied', 'HY000')
``