Creare più stringhe all'interno di una stringa utilizzando python

voti
0

Sono nuovo di utilizzare Python per scrivere sqlstringhe e chiedevo se qualcuno mi potrebbe aiutare. Così attualmente sto scrivendo una sqldichiarazione come questa,

   sql_statement = SELECT * from some_database WHERE FirstName IN (%(first_names)s)
   first_names = ['fn1', 'fn2', 'fn3']

E voglio la corda per finire come questo SELECT * from some_database WHERE FirstName IN ('fn1', 'fn2', 'fn3'), in cui ogni elemento della lista diventa il proprio stringa nella sqldichiarazione. Questo è possibile in Python?

È pubblicato 12/08/2017 alle 01:00
dall'utente
In altre lingue...                            


1 risposte

voti
1

È possibile utilizzare str.formatper ottenere questo risultato:

>>> sql_statement = """SELECT * from some_database WHERE FirstName IN {}"""
>>> first_names = ['fn1', 'fn2', 'fn3']
>>> 
>>> sql_statement.format(repr(tuple(first_names)))
"SELECT * from some_database WHERE FirstName IN ('fn1', 'fn2', 'fn3')"
>>> 

Caveat: Anche se questo va bene solo come una stringa di pianura, essere molto attenti usando questo come un'istruzione SQL a causa di SQL injection. Un'idea migliore sarebbe molto probabilmente al cursor.executeposto o l'equivalente nella tua libreria SQL API.

Risposto il 12/08/2017 a 01:05
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more