我是 python 新手。我想使用 mysql.connector 和 python 连接到 mysql。我想打开 csv 然后将其上传到 mysql 数据库。我使用 python 版本:3.6.0
我已经尝试过这个:
import csv
import mysql.connector
cnx = mysql.connector.connect(user='', password='',
host='127.0.0.1',
database='')
csv_data = csv.reader(file('12_13.csv'))
for row in csv_data:
cursor.execute('INSERT INTO testcsv(names, \
classes, mark )' \
'VALUES("%s", "%s", "%s")',
row)
#close the connection to the database.
mydb.commit()
cursor.close()
print("Done")
我收到此错误:
回溯(最近一次调用):文件“.\uploadtomysql.py”,行
7、在
csv_data = csv.reader(file('12_13.csv')) NameError:名称“文件”未定义
Thanks!
你得到的错误是'file' is not defined
。那是因为您传递了一个名为的变量file
未在程序中的任何位置定义(或导入)。你可能想设置file
到您要读取的 .csv 文件。所以第一步是打开文件:
file = open('12_13.csv', 'rb') # open the file in read binary mode
...
file.close()
或者更好的是,在上下文管理器中打开文件,这意味着一旦执行退出块,它将自动关闭:
with open('12_13.csv', 'rb') as f:
csv_data = csv.reader(f) # No NameError
...
f # raises NameError and file is closed
我没有运行代码,但这应该可以解决您提到的错误,或者至少让您朝着正确的方向前进。
您还会遇到一个问题cursor
没有被定义。您需要创建一个新光标cnx.cursor()
最后,mydb
也没有定义,所以会引发错误。我认为你不需要在这种情况下做出承诺,但我不能肯定地说。对于这种控制,我建议使用 ORM,例如SQL炼金术 http://docs.sqlalchemy.org/en/rel_0_9/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)