sky*_*gle 6 python mysql exception-handling pyodbc
我无法使用pyodbc连接到mySQl db.
这是我的脚本的片段:
import pyodbc
import csv
cnxn = pyodbc.connect("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost;DATABASE=mydb; UID=root; PASSWORD=thatwouldbetelling;")
crsr = cnxn.cursor()
with open('C:\\skunkworks\\archive\\data\\myfile.csv','r') as myfile:
rows = csv.reader(myfile, delimiter=',', quotechar='"')
for row in rows:
insert_str = 'INSERT into raw_data VALUES(something, something)'
print insert_str
#crsr.execute(insert_str)
cnxn.commit()
myfile.close()
Run Code Online (Sandbox Code Playgroud)
我在pyodbc.connect()行收到此错误:
pyodbc.Error:('IM002','[IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序(0)(SQLDriverConnectW)')
我有另一个关于此错误的问题(以及一般的Python脚本).当我将其作为脚本运行时,它会无声地失败(我期待堆栈跟踪).我必须手动键入每一行以查找错误发生的位置.
我现在有点懒(没有异常处理) - 没有异常处理的Python脚本的这种正常行为是否会无声地失败?
[编辑]
我没有使用mysqldb,因为我已经在使用pyodbc从另一个源(MS Access)中提取数据.好吧,这不是一个很好的理由 - 但我已经在努力解决pyodbc了,我真的不想与另一个库/模块/软件包(无论是用Python调用)进行"一次性"工作.我只想将Windows环境中各种数据源的数据移动到Linux上的mySQl.一旦在Linux上,我将重新回到terra firma.
这就是整个'剧本'.我刚刚将上面的代码保存到扩展名为.py的文件中,并在命令行运行python myscript.py.我在我的XP机器上运行它