编码元组的元素

时间:2016-05-22 15:35:33

标签: python mysql

我有这个代码,它使用元组

返回数据库的值
# 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")处的所有元素进行编码

1 个答案:

答案 0 :(得分:0)

您可以使用map()功能。尝试

return map( lambda x: (x[0].encode("utf-8"),)+x[1:], row )