Python轉(zhuǎn)json時出現(xiàn)中文亂碼的問題及解決
更新時間:2023年02月08日 10:23:46 作者:超級可愛的小甜甜
這篇文章主要介紹了Python轉(zhuǎn)json時出現(xiàn)中文亂碼的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
Python轉(zhuǎn)json時出現(xiàn)中文亂碼
設(shè)置報文頭
# -*- coding:gbk -*- ?
連接數(shù)據(jù)庫設(shè)置編碼
mysql = MySQLdb.connect(host='數(shù)據(jù)庫,user=用戶名,passwd=密碼,db='數(shù)據(jù)庫, init_command="set names gbk" )?
將數(shù)據(jù)轉(zhuǎn)換為json
jsonData = json.dumps(data, encoding='gbk',ensure_ascii=False) ?
如果json數(shù)據(jù)中文顯示有問題,變成 \uXXX的形式,原因是中文以變?yōu)閡nicode 編碼了,而解碼默認是以ASCII解的,中文不在ASCII編碼中,所以無法顯示,加上ensure_ascii=False可以防止變?yōu)閡nicode 編碼。
設(shè)置json編碼
?jsonData ?= jsonData .encode('gbk')
python json轉(zhuǎn)json字符串時,中文被轉(zhuǎn)義
核心
json.dumps(jsonData, ensure_ascii=False)
import pymysql import json conn = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='root', db='test' ) cursor = conn.cursor() sql = "select * from users" cursor.execute(sql) # row_1 = cursor.fetchone() row_2 = cursor.fetchmany(3) # print(row_1) # print(row_2) # print(list(row_2)) jsonData = [] for row in row_2: obj = {} obj['id'] = row[0] # obj['createTime'] = row[1] # obj['updateTime'] = row[2] obj['name'] = row[4] obj['phone'] = row[5] jsonData.append(obj) # print(row) print(jsonData) # json轉(zhuǎn)字符串中文轉(zhuǎn)字符 print(json.dumps(jsonData, ensure_ascii=False)) with open('./basedata.json', 'w') as f: f.write(json.dumps(jsonData, ensure_ascii=False)) conn.commit() cursor.close() conn.close()
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
YOLOv5車牌識別實戰(zhàn)教程(三)模型訓(xùn)練與評估
這篇文章主要介紹了YOLOv5車牌識別實戰(zhàn)教程(三)模型訓(xùn)練與評估,在這個教程中,我們將一步步教你如何使用YOLOv5進行車牌識別,幫助你快速掌握YOLOv5車牌識別技能,需要的朋友可以參考下2023-04-04Python列表list數(shù)組array用法實例解析
這篇文章主要介紹了Python列表list數(shù)組array用法,實例解析了關(guān)于數(shù)組的各種常見操作,非常具有實用價值,需要的朋友可以參考下2014-10-10Python使用eval函數(shù)執(zhí)行動態(tài)標(biāo)表達式過程詳解
這篇文章主要介紹了Python使用eval函數(shù)執(zhí)行動態(tài)標(biāo)表達式過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10django開發(fā)教程之利用緩存文件進行頁面緩存的方法
緩存相信對各位程序員們來說都不陌生,下面這篇文章主要給大家介紹了關(guān)于django開發(fā)教程之利用緩存文件進行頁面緩存的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友們可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11Python?matplotlib繪圖時使用鼠標(biāo)滾輪放大/縮小圖像
Matplotlib是Python程序員可用的事實上的繪圖庫,雖然它比交互式繪圖庫在圖形上更簡單,但它仍然可以一個強大的工具,下面這篇文章主要給大家介紹了關(guān)于Python?matplotlib繪圖時使用鼠標(biāo)滾輪放大/縮小圖像的相關(guān)資料,需要的朋友可以參考下2022-05-05