使用以下命令,我运行一个python脚本,该脚本将SQL插入语句打印到stdout:xzcat ../file.txt|grep –i ‘some text’|python3.7 pythonscriptname|mysql –h host –u username –ppassword databasename
如果打印语法错误的SQL语句或不存在的表,我希望捕捉错误。我不想使用mysql.connector或mysqldb来插入数据或捕获错误,因为将插入语句打印到stdout会更快。
我有以下代码:
try:
sql="INSERT IGNORE INTO "+str(wrongtabelname)+" VALUES"+values+";"
print(sql)
except: (SQLError, Exception, NameError,IndexError, TypeError, ValueError,ProgrammingError, Attrib
uteError, KeyError, BrokenPipeError,IOError, OSError, ConnectionAbortedError, ConnectionRefusedError, ConnectionError) as
e:
当使用错误的SQL语句运行代码时,此代码不会捕获任何错误。有人知道如何捕捉错误吗?
通过管道将xzcat
连接到python
再连接到mysql
。
这个链中唯一会看到SQL查询执行结果的进程是mysql
客户端。
如果您希望mysql
输出返回到python中,请考虑从python脚本内部调用mysql
。为此,请使用subprocess
模块。