आपका दूसरा दृष्टिकोण बहुत तेज होना चाहिए।
आपके कोड में दो समस्याएं हैं:
- csv को
f
. पर लिखने के बाद आप फ़ाइल के अंत में स्थित हैं। पढ़ना शुरू करने से पहले आपको अपनी स्थिति वापस शुरुआत में रखनी होगी। - सीएसवी लिखते समय, आपको हेडर और इंडेक्स को छोड़ना होगा
आपका अंतिम कोड इस तरह दिखना चाहिए:
import io
f = io.StringIO()
pd.DataFrame({'a':[1,2], 'b':[3,4]}).to_csv(f, index=False, header=False) # removed header
f.seek(0) # move position to beginning of file before reading
cursor = conn.cursor()
cursor.execute('create table bbbb (a int, b int);COMMIT; ')
cursor.copy_from(f, 'bbbb', columns=('a', 'b'), sep=',')
cursor.execute("select * from bbbb;")
a = cursor.fetchall()
print(a)
cursor.close()