我有这个代码,它使用元组
返回数据库的值# Create a new connection
con=connection()
#create a cursor to the connection
cur=con.cursor()
cur.execute("SELECT tragoudi.titlos, tragoudi.etos_par, cd_production.etaireia FROM tragoudi JOIN singer_prod ON tragoudi.titlos=singer_prod.title JOIN cd_production ON singer_prod.cd=cd_production.code_cd GROUP BY tragoudi.titlos HAVING tragoudi.titlos LIKE %s AND tragoudi.etos_par LIKE %s AND cd_production.etaireia LIKE %s",(titlos,etos_par,etaireia,))
con.commit()
row = cur.fetchall()
return [((row[0][0]).encode("utf-8"),(row[0][1]),(row[0][2])),]
row[:][0]
中的所有字符都是希腊字母,我必须对它们进行编码,因此我不会得到答案(u'\u0391\u0393\u03a9\u039d\u0399\u0391', 1978, u'SONY')
但是(u'ΑΓΩΝΙΑ', 1978, u'SONY')
这里的问题是我不知道元组的长度。
我知道这行代码return [((row[0][0]).encode("utf-8"),(row[0][1]),(row[0][2])),]
是错误的,因为它给了我这个错误IndexError('tuple index out of range',)
我想知道是否有办法使用类似row[something][0]
row[:][0].encode("utf-8")
处的所有元素进行编码
答案 0 :(得分:0)
您可以使用map()
功能。尝试
return map( lambda x: (x[0].encode("utf-8"),)+x[1:], row )