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)上找到這些資源。