尝试使用 pymysql 和 Python 版本 3 将 csv 导入 MySQL
Trying to import csv into MySQL with pymysql and Python version 3
我想将一个简单的 csv 放入数据库中的 MySQL table。我知道可能还有其他方法可以做到这一点,但对于我现有的系统,如果可能的话,我想坚持使用这种方法。
我已经阅读了所有其他可能的 post 并尝试了很多建议,但我无法让它发挥作用。我可以让它与 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)
有什么想法吗???
提前致谢!!
对我来说很有效
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()
回答我自己的问题,这对我有用:
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")
我想将一个简单的 csv 放入数据库中的 MySQL table。我知道可能还有其他方法可以做到这一点,但对于我现有的系统,如果可能的话,我想坚持使用这种方法。
我已经阅读了所有其他可能的 post 并尝试了很多建议,但我无法让它发挥作用。我可以让它与 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)
有什么想法吗???
提前致谢!!
对我来说很有效
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()
回答我自己的问题,这对我有用:
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")