आपके मूल प्रश्न का उत्तर है:नहीं, आप इस तरह की सूची नहीं डाल सकते।
हालांकि, कुछ बदलाव के साथ, आप %r
. का उपयोग करके उस कोड को काम कर सकते हैं और एक टपल में गुजर रहा है:
variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)
दुर्भाग्य से, परिवर्तनशील प्रविष्टि की वह शैली आपके कोड को SQL इंजेक्शन हमलों के प्रति संवेदनशील बना देती है। ।
इसके बजाय, हम Python's DB API का उपयोग करने का सुझाव देते हैं और डेटा डालने के लिए एकाधिक प्रश्न चिह्नों के साथ एक अनुकूलित क्वेरी स्ट्रिंग बनाना:
variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1,variable_2]
var_string = ', '.join('?' * len(varlist))
query_string = 'INSERT INTO table VALUES (%s);' % var_string
cursor.execute(query_string, varlist)
SQLite3 डॉक्स की शुरुआत में उदाहरण दिखाता है कि प्रश्न चिह्नों का उपयोग करके तर्क कैसे पारित किया जाता है और यह बताता है कि वे क्यों आवश्यक हैं (अनिवार्य रूप से, यह आपके चर के सही उद्धरण का आश्वासन देता है)।