这是我的pipelines.py,我在第18行收到错误。
import sys;sys.path.append("/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages")
import MySQLdb
import hashlib
from scrapy.exceptions import DropItem
from scrapy.http import Request
class TestPipeline(object):
def __init__(self):
self.conn = MySQLdb.connect(user='test', passwd='password', db='c1024403', host='ephesus.cs.cf.ac.uk', charset='utf8', use_unicode=True)
self.cursor = self.conn.cursor()
def process_item(self, item, spider):
try:
self.cursor.execute("""INSERT INTO test (test1, test2) VALUES (%s, %s)""", (item['Country'], item['Qualification']))
self.conn.commit()
except MySQLdb.Error, e:
print 'Error %d: %s' % (e.args[0], e.args[1])
sys.exit(1)
return item
继承错误 -
File "project\pipelines.py", line 18
except MySQLdb.Error, e:
^
SyntaxError: invalid syntax
我已经安装了mysql-python和visual c ++ 2008 express,我不明白错误的含义,因为我无法在互联网上的任何其他地方找到任何关于它的信息。
答案 0 :(得分:4)
您使用Python 3.x
运行代码,但try.. except
部分的代码方案适用于Python 2.X
。
如果您想使用Python 3.x
运行代码,请更改此行:
except MySQLdb.Error, e:
要:
except MySQLdb.Error as e:
如果您希望此部分代码适用于Python 2.x
和Python 3.x
,请将其更改为:
except MySQLdb.Error:
e = sys.exc_info()[1]
阅读more。
但根据您的print
声明,您为Python 2.x
编写了脚本,因此最好使用Python 2.x
代替Python 3.x
运行代码
此脚本的第一行中此sys.path.append("../python2.7/site-packages")
行也很奇怪。
另外,您粘贴的第一个代码的缩进是错误的,我认为您仍在使用它,请使用当前正在编辑的版本。