Python用pyodbc连接ODBC查询数据报print缺少括号语法错误
问题原因
你触发报错的直接原因是语法不匹配:
- 你运行代码的环境是Python 3版本,该版本中
print是内置函数,调用时必须把输出内容放在括号内,你写的print row是Python 2的语法规则,不符合Python 3的语法要求,所以直接触发了SyntaxError报错。 - 还有两个潜在问题需要提前检查,避免修复语法问题后仍运行失败:
- 确认代码开头已经导入pyodbc并设置了别名
po,即是否有import pyodbc as po这段代码,没有的话po.connect会触发名称未定义报错 - 确认
AS400、DBQ、UID、PWD四个变量你已经提前赋值,未定义直接使用也会触发报错
- 确认代码开头已经导入pyodbc并设置了别名
修复后的代码示例
# 未导入模块的话先加这行 import pyodbc as po # 替换为你自己的实际连接参数值 AS400 = "你的AS400服务地址" DBQ = "你的DBQ配置值" UID = "你的登录用户名" PWD = "你的登录密码" conn = po.connect( DRIVER='{iSeries Access ODBC Driver}', SYSTEM = AS400, DBQ = DBQ, DFTPKGLIB= 'QGPL', LANGUAGEID='ENU', PKG = 'QGPL/DEFAULT(IBM)', UID=UID, PWD=PWD) cursor = conn.cursor() cursor.execute("SELECT mmnmbtp.FXCLN FROM mmnmbtp") for row in cursor.fetchall(): # 仅修改此处,给print补充括号即可 print(row)
内容的提问来源于stack exchange,提问作者pucktack
相关产品推荐
相关产品推荐

