7

我有一个奇怪的问题,我不太确定如何在搜索 Google/SO 后找到类似的东西来解决它。

当我试图从游标中获取查询结果时,它给了我一个元组的元组,除了元组是字符串?下面是代码。

def queryFeeds(db):
   sql = """SELECT ngo.n_id, feeds.url FROM ngo 
    JOIN feeds ON ngo.n_id = feeds.n_id;"""

   db.c.execute(sql)

   feeds = db.c.fetchall()

   return feeds

函数返回的 feeds 变量的打印输出如下:

feeds[0]
('(277,http://resultsuk.wordpress.com/feed)',)

feeds[0][0]
'(277,http://resultsuk.wordpress.com/feed)'

type(feeds[0][0])
<type 'str'>

feeds[0][0][0:10]
'(277,http:'

db 只是一个具有数据库连接的类,其中 db.c 是游标。提前致谢。删除的数据是http://由于我的声誉低下所以不允许我发布的链接。

干杯,

卢卡斯

4

1 回答 1

9

SELECT从子句中的字段中删除括号。

我遇到了同样的问题(尽管用一个RETURNING子句而不是 a SELECT),@user2524674 的评论值得回答。在编辑问题之前,SELECT子句中的字段用括号括起来,即

SELECT (ngo.n_id, feeds.url)

并且返回的结果是一个字符串而不是一个实际的元组。将此更改为

SELECT ngo.n_id, feeds.url

导致psycopg2返回一个实际的值元组。

于 2015-11-02T10:56:24.773 回答