Python: convierte la tupla en una cadena separada por comas

import MySQLdb db = MySQLdb.connect("localhost","root","password","database") cursor = db.cursor() cursor.execute("SELECT id FROM some_table") u_data = cursor.fetchall() >>> print u_data ((1320088L,),) 

Lo que encontré en internet me trajo hasta aquí:

 string = ((1320088L,),) string = ','.join(map(str, string)) >>> print string (1320088L,) 

Cómo espero que se vea la salida:

  #Single element expected result 1320088L #comma separated list if more than 2 elements, below is an example 1320088L,1320089L 

Use itertools.chain_fromiterable() para aplanar sus tuplas anidadas primero, luego itertools.chain_fromiterable() a string y join() . Tenga en cuenta que str() elimina el sufijo L porque los datos ya no son de tipo long .

 >>> from itertools import chain >>> s = ((1320088L,),) >>> ','.join(map(str,chain.from_iterable(s))) '1320088' >>> s = ((1320088L,1232121L),(1320088L,),) >>> ','.join(map(str,chain.from_iterable(s))) '1320088,1232121,1320088' 

Tenga en cuenta que la string no es un buen nombre de variable porque es el mismo que el módulo de string .

Creo que la string es una tuple de tuple contiene valores largos.

 >>> string = ((1320088L,),) >>> ','.join(str(y) for x in string for y in x if len(x) > 0) '1320088' >>> 

por ejemplo, con más de un valor

 >>> string = ((1320088L,1232121L),(1320088L,),) >>> ','.join(str(y) for x in string for y in x if len(x) > 0) '1320088,1232121,1320088' >>> 
 string = ((1320088L,),) print(','.join(map(str, list(sum(string, ()))))) string = ((1320088L, 1232121L), (1320088L,),) print(','.join(map(str, list(sum(string, ()))))) 

Salida:

 1320088 1320088,1232121,1320088