प्लेसहोल्डर्स की संख्या आपकी तालिका और सीएसवी फ़ाइल प्रारूप से मेल खाती है यह सुनिश्चित करने के लिए गतिशील रूप से क्वेरी बनाने पर विचार करें। फिर यह सुनिश्चित करने की बात है कि आपने पर्याप्त ?
टाइप किया है या नहीं, यह जांचने के बजाय आपकी तालिका और CSV फ़ाइल सही है। आपके कोड में प्लेसहोल्डर।
निम्नलिखित उदाहरण मानता है
- सीएसवी फ़ाइल में पहली पंक्ति में कॉलम नाम हैं
- कनेक्शन पहले ही बन चुका है
- फ़ाइल का नाम है
test.csv
- तालिका का नाम है
MyTable
- पायथन 3
...
with open ('test.csv', 'r') as f:
reader = csv.reader(f)
columns = next(reader)
query = 'insert into MyTable({0}) values ({1})'
query = query.format(','.join(columns), ','.join('?' * len(columns)))
cursor = connection.cursor()
for data in reader:
cursor.execute(query, data)
cursor.commit()
यदि स्तंभ नाम फ़ाइल में शामिल नहीं हैं:
...
with open ('test.csv', 'r') as f:
reader = csv.reader(f)
data = next(reader)
query = 'insert into MyTable values ({0})'
query = query.format(','.join('?' * len(data)))
cursor = connection.cursor()
cursor.execute(query, data)
for data in reader:
cursor.execute(query, data)
cursor.commit()