Soy nuevo en Python. Tengo la lista llamada X en Python.

X = ['1', '2', '3']

Quería convertir como a continuación. para que pueda pasar directamente a la declaración SQL donde la condición IN (1,2,3).

XVals = 1,2,3

Sql = '' 'SELECT * de [dbo]. [cliente] donde c_id en (% s)' ''% (xVals)

Por favor, hágame saber las posibles formas de hacerlo. Gracias por adelantado.

0
Rajaram D 9 dic. 2020 a las 14:14

3 respuestas

La mejor respuesta

¿Tiene acceso a f-strings en una versión reciente de Python?

X = ['1', '2','3']

sql = f'''SELECT * from [dbo].[customer] where c_id in {tuple(int(x) for x in X)}''' 

print(sql)

Salida:

SELECT * from [dbo].[customer] where c_id in (1, 2, 3)
0
quamrana 9 dic. 2020 a las 11:20

¿Es esto lo que quieres? Tenga en cuenta que no he acortado más el código por motivos de legibilidad.

def convert_list_to_csv(lst):
    vals = ""
    for i in lst:
        "" += ","+ str(i)
    return vals[1:]

print(convert_list_to_csv([1, 2, 3]))

Si tiene alguna otra consulta con respecto a esta pregunta, hágamelo saber que estaré listo.
¡Feliz codificación!

0
Aryan Mishra 9 dic. 2020 a las 11:18

Puede usar el método de unión para convertir la lista en cadena y agregar '()'

xVar=' ('+','.join(X)+')'
0
Amit Kumar 9 dic. 2020 a las 11:18
65215690