Java 如何解决一个问题;第一个arg can';不要被迫使用字符串;对于jaydebeapi.connect命令?

Java 如何解决一个问题;第一个arg can';不要被迫使用字符串;对于jaydebeapi.connect命令?,java,python,jython,windows-server-2016,jaydebeapi,Java,Python,Jython,Windows Server 2016,Jaydebeapi,在Windows Server 2016上,我们正在尝试使用Jython脚本通过JDBC进行连接,但我们的jaydebeapi.connect语句出现以下错误: TypeError:getConnection():无法将第一个参数强制为字符串 然而,当我们看时,第一个参数是字符串 这是我们的Python代码: jclassname = "com.microsoft.sqlserver.jdbc.SQLServerDriver" database = "our_database_name" db

在Windows Server 2016上,我们正在尝试使用Jython脚本通过JDBC进行连接,但我们的
jaydebeapi.connect
语句出现以下错误:

TypeError:getConnection():无法将第一个参数强制为字符串

然而,当我们看时,第一个参数是字符串

这是我们的Python代码:

jclassname = "com.microsoft.sqlserver.jdbc.SQLServerDriver" 
database = "our_database_name"
db_elem = ";databaseName={}".format(database) if database else ""
host = "###.##.###.###" # ip address
port = "1433"    
user = "user_name"
password = "password"  
url = (jdbc:sqlserver://{host}:{port}{db_elem}"        ";user={user};password={password}".format(host=host, port=port, db_elem=db_elem,  er=user, password=password)    )    
print url
driver_args = [url]
jars = None
libs = None
db = jaydebeapi.connect(jclassname, driver_args, jars=jars, libs=libs)
这就是我们运行Python脚本的方式:

C:\jython2.7.0\bin\jython.exe C:\path_to_our_script.py
我们错过了什么?如何解决jaydebeapi.connect语句的字符串强制错误?

来自
jaydebeapi
文档-

基本上,您只需导入
jaydebeapi
Python模块并执行
连接
方法。这为您提供了一个符合DB-API的连接到 数据库

connect
的第一个参数是Java驱动程序类的名称。 第二个参数是带有JDBC连接URL的字符串。第三 您可以选择提供由用户和密码组成的序列 或者,一个包含内部参数的字典 作为属性传递给Java
DriverManager.getConnection
方法。 有关详细信息,请参见类的Javadoc

您从
DriverManager.getConnection
方法中获得此错误

来自
DriverManager的JavaDocs-

public static Connection getConnection(String url, Properties info)
因此,您的
jaydebeapi.connect
函数调用出错。第二个参数应该是
url
,作为字符串

以下是来自
JayDeBeApi
文档的示例片段


是的,URL确实需要是字符串。我们认为是这样,但我们意识到这一行是错误的:“driver_args=[url]”这一行将字符串变成了一个列表。一旦我们删除了它,代码就起作用了。
>>> import jaydebeapi
>>> conn = jaydebeapi.connect("org.hsqldb.jdbcDriver",
...                           "jdbc:hsqldb:mem:.",
...                           ["SA", ""],
...                           "/path/to/hsqldb.jar",)