国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python MySQLdb 使用utf-8 編碼插入中文數據問題

2020-01-04 15:39:27
字體:
來源:轉載
供稿:網友

最近幫伙計做了一個從網頁抓取股票信息并把相應信息存入MySQL中的程序。

使用環境:

Python 2.5 for Windows
MySQLdb 1.2.2 for Python 2.5
MySQL 4.1.22

在寫程序中遇到了些怪的故障。

第一個問題:插入中文失敗

 這個是由于字符編碼問題引起的。MySQL安裝時我已經設置為utf8編碼,表也是使用utf8編碼建立。程序中只要在開頭寫好#-*- coding: utf-8 -*-,并在設定連接字符串時候寫清使用utf8就可以了conn=MySQLdb.connect(host="127.0.0.1",user="webdb",passwd="web123",db="web",charset="utf8")。設置之后從MySQL中取出的以utf8編碼保存的中文也不會發生亂碼。

對中文字符串,如:a = "浦發銀行",在進行插入操作前做一下編碼轉換a = a.decode("gbk").encode("utf-8")。然后進行插入操作就沒有任何問題了。

第二個問題:能插入之后無法在MySQL中保存剛才插入的數據

經過檢查數據可以被正確的插入,但是連接斷開之后不保存在表中。經過檢查發現原來是漏了conn.commit()。需要在語句執行之后提交操作。

源代碼如下。

#-*- coding: utf-8 -*-import sys,MySQLdbconn=MySQLdb.connect(host="127.0.0.1",user="webdb",passwd="web123",db="web",charset="utf8") #需要設定一下charset為utf-8cursor=conn.cursor() #生成連接的指針對象#進行字符串編碼轉換并進行插入a = "浦發銀行"a = a.decode("gbk").encode("utf-8") #編碼轉換為utf-8sql="insert into stocklist (stockno,stockname) values (%s,%s)" #生成sql語句param=('600000',a) #生成sql語句的參數n = cursor.execute(sql,param) #執行sql語句#以上操作等價于n = cursor.execute("insert into stocklist (stockno,stockname) values ('430004','"+ "浦發銀行".decode("gbk").encode("utf-8") + "')")print nconn.commit() #提交操作結果#進行查詢操作檢查剛剛執行的插入操作結果n = cursor.execute("select * from stocklist")for row in cursor.fetchall(): print row[0] + row[1]cursor.close() #關閉指針conn.close() #關閉連接

總結

以上所述是小編給大家介紹的Python MySQLdb 使用utf-8 編碼插入中文數據問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东至县| 昆明市| 化德县| 吉水县| 甘谷县| 合山市| 屯留县| 崇州市| 民丰县| 定兴县| 濮阳县| 高青县| 弥勒县| 曲靖市| 邵武市| 胶州市| 乐安县| 汨罗市| 涡阳县| 新野县| 巴林左旗| 安吉县| 文化| 合江县| 双流县| 伊川县| 左贡县| 尚义县| 静安区| 新宁县| 荆州市| 丁青县| 金川县| 黄大仙区| 通河县| 清苑县| 吴江市| 平邑县| 五家渠市| 汾西县| 石狮市|