Python 3.x 尝试使用pymysql和Python版本3将csv导入MySQL

Python 3.x 尝试使用pymysql和Python版本3将csv导入MySQL,python-3.x,pymysql,Python 3.x,Pymysql,我想将一个简单的csv放入数据库中的MySQL表中。我知道可能还有其他方法可以做到这一点,但对于我现有的系统,如果可能的话,我希望坚持使用这种方法 我已经阅读了关于这一点的所有其他可能的帖子,并尝试了许多建议,但我无法让它发挥作用。我可以让它与Python2一起使用,但不能在Python3中使用 csv是 test1 test2 43.49 654.32 78.89 294.95 当我尝试不同的方法时,我似乎无法获得正确的语法,并出现各种错误 import csv import

我想将一个简单的csv放入数据库中的MySQL表中。我知道可能还有其他方法可以做到这一点,但对于我现有的系统,如果可能的话,我希望坚持使用这种方法

我已经阅读了关于这一点的所有其他可能的帖子,并尝试了许多建议,但我无法让它发挥作用。我可以让它与Python2一起使用,但不能在Python3中使用

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 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")

回答我自己的问题,这对我来说很有用:

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或txt文件中提取的语法
cursor.execute(““”INSERT INTO test.table(test1,test2)VALUES('78.25','90')”
我计算出来了。在下面的
csv\u data=csv.reader(open('c:/tmp/sample.csv')中添加
open
然后删除
光标末尾的行。执行
语句。也许你应该用工作示例回答你自己的问题并接受它,这样有相同问题的人可以看到当他们搜索时你是如何解决的,所以…如果我输入如下实际值,我可以让它工作。所以我只需要语法用于从csv或txt文件中提取。
cursor.execute(““”插入到test.table(test1,test2)值('78.25','90')”
我计算出来了。在下面的
csv\u data=csv.reader中添加
open
(open('c:/tmp/sample.csv'))
然后删除
光标末尾的行。执行
语句。也许你应该用工作示例回答你自己的问题并接受它,这样有相同问题的人在搜索时可以看到你是如何解决的,所以…虽然这段代码可以解决OP的问题,但最好包括一个关于如何你的代码解决了OP的问题。通过这种方式,未来的访问者可以从你的帖子中学习,并将其应用到他们自己的代码中。因此,它不是一种编码服务,而是一种知识资源。此外,高质量、完整的答案更有可能被提升。这些功能,以及所有帖子都是自包含的要求,是其中的一些优势作为一个平台,它将其与论坛区分开来。您可以编辑以添加其他信息和/或用源文档补充您的解释。虽然此代码可能会解决OP的问题,但最好包含一个解释,说明您的代码如何解决OP的问题。这样,未来的访问者可以从您的帖子中学习并应用因此,它不是一种编码服务,而是一种知识资源。此外,高质量、完整的答案更有可能被提升。这些功能,加上所有帖子都是独立的要求,是SO作为一个平台的一些优势,使其区别于论坛。您可以编辑以添加其他信息&/or使用源文档补充您的解释。