"न्यूडेटा x कॉलम की सूची है" से, मुझे लगता है कि आपका मतलब x
. है टुपल्स , तब से आप "पहले टपल" की बात करना जारी रखते हैं। अगर Newdata
टुपल्स की एक सूची है, y = len(Newdata[0])
उनमें से पहले टुपल्स में आइटम्स की संख्या है।
यह मानते हुए कि वह संख्या है जो आप चाहते हैं (और सभी टुपल्स में समान संख्या में आइटम बेहतर थे, अन्यथा executemany
होगा असफल!), @ नाथन के उत्तर में सामान्य विचार सही है:उचित संख्या में अल्पविराम से अलग किए गए प्रश्न चिह्नों के साथ स्ट्रिंग बनाएं:
holders = ','.join('?' * y)
फिर इसे बाकी SQL स्टेटमेंट में डालें। @ नाथन का सम्मिलित करने का तरीका अधिकांश पायथन 2. किसी भी संस्करण के लिए सही है, लेकिन यदि आपके पास 2.6 या बेहतर है, तो
sql = 'INSERT INTO testdata VALUES({0})'.format(holders)
वर्तमान में पसंद किया जाता है (यह Python 3.any में भी काम करता है)।
अंत में,
csr.executemany(sql, Newdata)
आप जो चाहते हैं वह करेंगे। एक बार पूरा हो जाने के बाद लेन-देन करना याद रखें!-)