我有一个Perl脚本通过DBI模块与现有数据库(数据库类型未知)连接,我希望在WinXP上的python 2.6中访问它。
Perl代码是:
use DBI;
my $DSN = "DBI:Proxy:hostname=some.dot.com;port=12345;dsn=DBI:XXXX:ZZZZZ";
my $dbh = DBI->connect($DSN);
这可以转换为python等价物吗?
按照(Is there any pywin32 odbc connector documentation available?)的例子,我将以下内容放在一起:
import odbc
DSN = "DBI:Proxy:hostname=some.dot.com;port=12345;dsn=DBI:XXXX:ZZZZZ"
db = odbc.odbc(DSN)
但我收到错误:
dbi.operation-error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified in LOGIN
更新
似乎另一个Perl模块,DBD :: Proxy正在为处理实际查询的Perl DBI :: ProxyServer(服务器端)实现提供实际接口。
可以使用python与基于Perl的DBI::ProxyServer?
进行交互答案 0 :(得分:5)
您的python脚本不必是Perl脚本的逐行转换。
为什么不将Python DB-API兼容模块用于您要访问的数据库?对于MySQL,请使用MySQLdb。对于PostgreSQL,请使用PyGreSQL。
或在Google上搜索“YourDatabaseName + python”
答案 1 :(得分:0)
sqlalchemy非常好。