Sql server 使用pyodbc库-Python在sql连接字符串中混合字符串和输入变量

Sql server 使用pyodbc库-Python在sql连接字符串中混合字符串和输入变量,sql-server,python-3.x,variables,database-connection,pyodbc,Sql Server,Python 3.x,Variables,Database Connection,Pyodbc,我四处查看了一下,所以找不到这个问题 因此,我有一个ext config.txt文件,用于获取python程序中存储在变量中的值。python中有一个变量以字典形式存储key:values。(想法是它接受配置设置并从程序执行sql server查询) 我的代码如下所示(还显示打印语句的输出): 当我尝试运行第一行时,一切都按预期进行。但是,当我尝试第二行时,我得到: pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver

我四处查看了一下,所以找不到这个问题

因此,我有一个ext config.txt文件,用于获取python程序中存储在变量中的值。python中有一个变量以字典形式存储key:values。(想法是它接受配置设置并从程序执行sql server查询)

我的代码如下所示(还显示打印语句的输出):

当我尝试运行第一行时,一切都按预期进行。但是,当我尝试第二行时,我得到:

pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

这与dict到字符串的转换有关吗?或者可能使用pyodbc?

所以我设法找到了修复方法,看起来这是解析字符串的错误:

不正确:

odbc.connect('\''DRIVER='+ str(driver) +  ' SERVER=' + str(server) + ' DATABASE=' + str(database)  +  ' Trusted_Connection='+ str(trusted)+'\'')
正确:

odbc.connect('DRIVER='+driver+';SERVER='+server+';DATABASE='+database+';Trusted_Connection='+trusted) 

因此,我设法找到了修复程序,看起来这是解析字符串的错误:

不正确:

odbc.connect('\''DRIVER='+ str(driver) +  ' SERVER=' + str(server) + ' DATABASE=' + str(database)  +  ' Trusted_Connection='+ str(trusted)+'\'')
正确:

odbc.connect('DRIVER='+driver+';SERVER='+server+';DATABASE='+database+';Trusted_Connection='+trusted) 

您还可以使用f字符串:
f'DRIVER={DRIVER};服务器={SERVER};…'
您也可以使用f字符串:
f'DRIVER={DRIVER};服务器={SERVER};…'