我有以下代碼在我從本地主機運行時運行正常,但是當我從Amazon運行它時失敗。代碼沒有區別,它使用相同的數據庫連接。無法在Amazon上使用dictCursor獲取數據
我用pymysql
,我用dictCursor來按列名取數據。這是我如何創建鏈接:
self.link = self.db.cursor(pymysql.cursors.DictCursor)
我的問題是當我試圖獲取數據。以下簡單代碼段失敗:
try:
self.link.execute('SELECT * FROM crawler_data WHERE id="%d" LIMIT 1' % id_crawl);
row = self.link.fetchone()
except pymysql.err.Error as ex:
print "Can not fetch crawler data from database: %s" % ex
print "Before"
try:
if row["address"]:
print "Filter Address: %s" % row["address"]
except Exception as ex:
print "Could not filter the data: %s" % ex.message
print "After"
它甚至不會打印「過濾器地址」。我想這意味着它在if row["address"]:
上失敗。它確實打印「之前」和「之後」。
我也試過row[u"address"]:
沒有任何成功。當我打印row
。我得到以下數據印刷: {u'address': u'Ekhammargr\\xe4nd 7'}
所以問題:
- 我除了完成,並打印「無法篩選數據:」。它不打印ex.message。如何獲取導致
try
失敗的異常或錯誤? - 我使用相同的代碼和相同的數據庫連接,獲取相同的數據。它在我的本地主機Windows機器上正常工作,但不在我的Amazon Web Services Elastic Beanstalk Linux應用程序上運行。這怎麼可能?
編輯: 我試圖改變if語句:
if True:
print "Filter Address"
它仍然未能在亞馬遜。如果是縮進錯誤,它不應該在localhost上工作......任何想法?
下面是完整的功能:http://pastebin.com/haJGFuj3