我有一个奇怪的问题,我不太确定在搜索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://因为我的声誉很低,所以我不会发帖。
干杯,
卢卡斯
答案 0 :(得分:4)
从SELECT
子句中的字段中删除括号。
我有同样的问题(虽然使用RETURNING
子句而不是SELECT
),@ user2524674的评论值得回答。在编辑问题之前,SELECT
子句中的字段用括号括起来,即
SELECT (ngo.n_id, feeds.url)
返回的结果是字符串而不是实际的元组。将此更改为
SELECT ngo.n_id, feeds.url
导致psycopg2
返回实际的元组值。