我想将一个简单的csv放入数据库中的MySQL表中。我知道可能还有其他方法可以做到这一点,但对于我所使用的系统,如果可能的话,我想坚持使用这种方法。
我已经阅读了所有其他可能的帖子,并尝试了很多建议,但我无法让它发挥作用。我可以使用python 2而不是3。
csv是
test1 test2
43.49 654.32
78.89 294.95
当我尝试不同的方法时,我似乎无法使语法正确并出现各种错误。
import csv
import pymysql
db = pymysql.connect( host = '###.###.##.#',
user = 'test',passwd = 'test')
cursor = db.cursor()
csv_data = csv.reader('c:/tmp/sample.csv')
next(csv_data)
for row in csv_data:
cursor.execute('INSERT INTO test.table(test1, test2) VALUES(%s, %s)',row)
db.commit()
cursor.close()
print (Imported)
任何想法???
提前致谢!!
答案 0 :(得分:0)
对我来说有效
import pymysql
import csv
db = pymysql.connect("localhost","root","12345678","data" )
cursor = db.cursor()
csv_data = csv.reader(open('test.csv'))
next(csv_data)
for row in csv_data:
cursor.execute('INSERT INTO PM(col1,col2) VALUES(%s, %s)',row)
db.commit()
cursor.close()
答案 1 :(得分:0)
要回答我自己的问题,这对我有用:
import csv
import pymysql
db = pymysql.connect( host = '###.###.##.#',
user = 'test',passwd = 'test')
cursor = db.cursor()
f = csv.reader(open('c:/tmp/sample.csv'))
sql = """INSERT INTO test.table(test1,test2) VALUES(%s,%s)"""
next(f)
for line in f:
line=[None if cell == '' else cell for cell in line]
cursor.execute(sql, line)
db.commit()
cursor.close()
print ("Imported")