无法在 Amazon 上使用 dictCursor 获取数据

Posted

技术标签:

【中文标题】无法在 Amazon 上使用 dictCursor 获取数据【英文标题】:Can not get data with dictCursor on Amazon 【发布时间】:2014-06-05 06:06:52 【问题描述】:

当我从本地主机运行它时,我有以下代码可以正常工作,但是当我从亚马逊运行它时它会失败。代码没有区别,使用的是同一个数据库连接。

我使用pymysql 并使用 dictCursor 按列名获取数据。这就是我创建链接的方式:

self.link = self.db.cursor(pymysql.cursors.DictCursor)

我的问题是当我尝试获取数据时。以下简单代码 sn -p 失败:

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"

它在亚马逊上仍然失败。如果是缩进错误,它也不应该在本地主机上工作......有什么想法吗?

这里是完整的函数:http://pastebin.com/haJGFuj3

【问题讨论】:

【参考方案1】:

由于某种未知原因,当我完全一样地重写代码时,它开始工作了。我只使用制表符作为缩进,没有空格,我检查了三次,但没有收到任何缩进错误。所以我不确定是什么导致了这些问题。

但是当我用相同的代码从头开始重写代码时。它奏效了。

编辑:我使用 Sublime Text 2 作为编辑器,使用 utf8 作为编码。

【讨论】:

以上是关于无法在 Amazon 上使用 dictCursor 获取数据的主要内容,如果未能解决你的问题,请参考以下文章

无法让 cron 在 Amazon EC2 上工作?

无法在 Amazon EMR 集群上使用 PIG 0.12.0 和 Hadoop 2.4.0 找到 MySql 驱动程序

[0A000][500310] [Amazon](500310) 无效操作:无法在 pg 表上定义物化视图。

无法在 Amazon EC2 上安装 inotify

python mysql.connector DictCursor?

在 Amazon 云上使用 Java Web 服务