mysqlpython3
① python3 Mysql executemany的使用
题主你好,
从你的代码来说, 你的问题出在对executemany(sql, data)这个方法的逻辑没弄明白.
咱们对比一下execute(sql)和executemany(sql, data), 这里假设sql执行的是插入操作:
前者是执行单条操作,要插入的数据是写死在sql这个字符串中的;
后者是批量执行插入操作.关键的地方在于sql参数中留出格式化字符, 而数据是从data中取,这么说不好理解,看例子吧:
sql改为:
sql = "INSERT INTO bbb(nu1, nu2, nu3) VALUES (%s, %s, %s)"
注意和你的对比一下:
sql = "INSERT INTO bbb(nu1, nu2, nu3) VALUES (%s, %s, %s)" % (aa,bb,cc)
-----
关键是data参数,有两种写法,一种是序列内嵌, 一种是字典:
序列内嵌(外层必须是列表, 内层元素是列表或元组)
data=[[1,2,3],[4,5,6],[7,8,9]]
data=[(1,2,3),(4,5,6),(7,8,9)]
字典:
使用字典时,sql也要相应的改一下:
sql = "INSERT INTO bbb(nu1, nu2, nu3) VALUES (%(nu1)s, %(nu2)s, %(nu3)s)"
data参数外层还是一个列表, 内层元素是一个个的字典,即一个字典表示一条将要被插入的数据:
data = [ { 'nu1':1, 'nu2':2, 'nu3':3 }, { 'nu1':1, 'nu2':2, 'nu3':3 } ]
-----
再说下最终的逻辑:
序列内嵌法:
1.可以使用for循环先得到一个外层是列表,内层元素是列表或元组的这的一个列表:
ll= []
for i in itertools.permutations(range(1,8),3):
ll.append(i)
2.然后再构建sql语句:
sql = "INSERT INTO bbb(nu1, nu2, nu3) VALUES (%s, %s, %s)"
3.调用executemany():
cursor.executemany(sql,ll)
4.最后调用commit(),提交给数据库执行:
yydd.commit()
-----
字典法的逻辑:
1.使用for循环构建一个元素是字典的列表:
ll= []
for i in itertools.permutations(range(1,8),3):
ll.append({'nu1':i[0], 'nu2':i[1], 'nu3':i[2]})
2.构建sql语句:
sql = "INSERT INTO bbb(nu1, nu2, nu3) VALUES (%(nu1)s, %(nu2)s, %(nu3)s)"
3,4步同序列内嵌法中的描述.
=====
希望可以帮到题主, 欢迎追问
② python3怎么导入mysql
python3发布以来,获取了广大程序员们的差评,说不稳定,又是不兼容什么的,不过差评归差评,python3既然已经发布,肯定是个趋势,但在python3.4里面,使用原来python2.7的mysqldb已经不能连接mysql数据库了,比较令人纠结,不过我们可以使用pymysql,来完成连接mysql的重任,步骤如下:
序号描述
1去github上下载pymysql的安装包 pymysql
2解压到某个盘符下
3打开cmd窗口(win环境下),进入pymysql的根目录下执行命令,python setup.py install4在程序里,导入pymysql
5开始连接数据库
数据库操作的API文档连接: http//legacy.python.org/dev/peps/pep-0249/代码如下:
__author__ = 'qindongliang'
#导入pymysql的包
import pymysql
try:
#获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库conn=pymysql.connect(host='localhost',user='root',passwd='qin',db='person',port=3306,charset='utf8')cur=conn.cursor()#获取一个游标
cur.execute('select * from person')
data=cur.fetchall()
for d in data :
#注意int类型需要使用str函数转义
print("ID: "+str(d[0])+' 名字: '+d[1]+" 性别: "+d[2])cur.close()#关闭游标
conn.close()#释放数据库资源
except Exception :print("发生异常")
结果如下:
D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/mysql.pyID: 1 名字: 秦天 性别: 男
ID: 2 名字: 王晶 性别: 女
Process finished with exit code 0
③ python3.x如何安装mysql-python(mysqldb)
要在Python3.x中安装MySQL-python(mysqldb),可以通过使用pip工具进行。请确保您已安装了pip,如果未安装,可以访问Python官方网站下载并安装最新版本。
具体步骤如下:
1. 打开命令行(在Windows系统中,可以通过搜索“cmd”并以管理员身份运行)。
2. 在命令行中输入以下命令:
pip install mysqlclient
这将下载并安装mysqlclient,这是与MySQL数据库交互的Python包。如果您使用的是Python版本较旧的系统,可能需要使用以下命令:
pip3 install mysqlclient
3. 完成安装后,可以验证是否成功安装。在Python解释器中输入以下代码并运行:
import mysql.connector
如果未出现任何错误,表示安装成功。
注意:在安装过程中,请确保您的Python环境与pip工具是最新的。此外,安装mysqlclient后,还需确保MySQL数据库服务器正在运行,并在系统中正确配置了MySQL数据库连接信息。
有关mysqlclient的详细信息和文档,请访问其官方文档或源代码页面。您可以在Python Package Index(PyPI)上找到这些资源。