2016-07-22 2 views
0

В моем случае использования у меня есть csv, который хранится в виде строки, и я хочу загрузить его в таблицу MySQL. Есть ли лучший способ, чем сохранить строку в виде файла, использовать LOAD DATA INFILE, а затем удалить файл? Я нахожу this answer, но это для JDBC, и я не нашел эквивалент Python.Как загрузить CSV-строку в MySQL с использованием Python

+1

Почему бы просто не вставить вставку stmt вместе? – Drew

ответ

0

Да, что вы описали, очень возможно! Скажем, например, что ваш файл csv имеет три столбца:

import MySQLdb 
conn = MySQLdb.connect('your_connection_string') 
cur = conn.cursor() 
with open('yourfile.csv','rb') as fin: 
    for row in fin: 
     cur.execute('insert into yourtable (col1,col2,col3) values (%s,%s,%s)',row) 
cur.close(); conn.close() 
+0

Будет ли это медленным, если у меня много строк в моем CSV? Я слышал, что LOAD DATA INFILE более эффективен при загрузке большого количества данных. – user274602

+0

Вы должны попробовать оба способа ... – bernie

Смежные вопросы