use*_*674 5 postgresql psycopg2 fetchall
我有一个奇怪的问题,我不太确定如何解决它搜索谷歌/ 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
Run Code Online (Sandbox Code Playgroud)
此处的打印输出是函数返回的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:'
Run Code Online (Sandbox Code Playgroud)
db只是一个具有数据库连接的类,其中db.c是游标.提前致谢.删除的数据是http://链接,因为我的声誉很低,所以我不会发布这些链接.
干杯,
卢卡斯
从SELECT子句中的字段中删除括号。
我遇到了同样的问题(尽管使用RETURNING子句而不是 a SELECT),@user2524674 的评论应该是一个答案。在编辑问题之前,SELECT子句中的字段用括号括起来,即
SELECT (ngo.n_id, feeds.url)
Run Code Online (Sandbox Code Playgroud)
并且返回的结果是一个字符串而不是一个实际的元组。将此更改为
SELECT ngo.n_id, feeds.url
Run Code Online (Sandbox Code Playgroud)
导致psycopg2返回一个实际的值元组。