Python CSV到MySQL上传问题
我已经适应了(发布在下面以节省您的点击)为我工作。我有两个问题 1) 如何让上传程序跳过标题行?现在它将上传我的CSV中的第一行,它只定义了列。因此,在本例中,进入我的数据库的条目将是“名字、姓氏、电子邮件” 2) 两列读“First Name”和“Last Name”,显然空格把它搞砸了,抛出一个错误,说我的SQL语法有问题,并检查手册中的版本。在我自己玩过之后,我发现如果我用一个uu替换这个空间,它就会起作用。所以新的栏目是“名字”和“姓氏”。有没有办法不获取错误,也不使用下划线Python CSV到MySQL上传问题,python,mysql,csv,Python,Mysql,Csv,我已经适应了(发布在下面以节省您的点击)为我工作。我有两个问题 1) 如何让上传程序跳过标题行?现在它将上传我的CSV中的第一行,它只定义了列。因此,在本例中,进入我的数据库的条目将是“名字、姓氏、电子邮件” 2) 两列读“First Name”和“Last Name”,显然空格把它搞砸了,抛出一个错误,说我的SQL语法有问题,并检查手册中的版本。在我自己玩过之后,我发现如果我用一个uu替换这个空间,它就会起作用。所以新的栏目是“名字”和“姓氏”。有没有办法不获取错误,也不使用下划线 impor
import csv
import MySQLdb
mydb = MySQLdb.connect(host='server IP',
user='DB User Name',
passwd='PW for DB user',
db='name of DB')
cursor = mydb.cursor()
csv_data = csv.reader(file('test.csv'))
for row in csv_data:
cursor.execute('INSERT INTO testcsv(First_Name, \
Last_Name,email )' \
'VALUES("%s","%s","%s")',
row)
#close the connection to the database.
mydb.commit()
cursor.close()
print "Done"
要跳过第一行,可以使用:
next(csv_data, None)
for row in csv_data:
我认为mysql不接受带空格的列名,因此下划线听起来是一种合理的解决方法,您仍然可以以不同的方式显示给用户。所以只需在中添加[1:]部分即可?我试过了,它说“TypeError:'csv.reader'对象没有属性'\u getitem'我不知道为什么我会用粗体显示,它应该是两个下划线,然后是'getitem',然后是两个下划线。更新了我的答案,对于
csv.reader
返回的对象,这实际上是一种错误的跳过方式。”next
跳过一行,在本例中是第一行。