Python轉(zhuǎn)json時(shí)出現(xiàn)中文亂碼的問(wèn)題及解決
Python轉(zhuǎn)json時(shí)出現(xiàn)中文亂碼
設(shè)置報(bào)文頭
# -*- coding:gbk -*- ?
連接數(shù)據(jù)庫(kù)設(shè)置編碼
mysql = MySQLdb.connect(host='數(shù)據(jù)庫(kù),user=用戶名,passwd=密碼,db='數(shù)據(jù)庫(kù), init_command="set names gbk" )?
將數(shù)據(jù)轉(zhuǎn)換為json
jsonData = json.dumps(data, encoding='gbk',ensure_ascii=False) ?
如果json數(shù)據(jù)中文顯示有問(wèn)題,變成 \uXXX的形式,原因是中文以變?yōu)閡nicode 編碼了,而解碼默認(rèn)是以ASCII解的,中文不在ASCII編碼中,所以無(wú)法顯示,加上ensure_ascii=False可以防止變?yōu)閡nicode 編碼。
設(shè)置json編碼
?jsonData ?= jsonData .encode('gbk')python json轉(zhuǎn)json字符串時(shí),中文被轉(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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python光學(xué)仿真實(shí)現(xiàn)光線追跡折射與反射的實(shí)現(xiàn)
這篇文章主要為大家介紹了python光學(xué)仿真實(shí)現(xiàn)光線追跡折射與反射的實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10
基于python內(nèi)置函數(shù)與匿名函數(shù)詳解
下面小編就為大家分享一篇基于python內(nèi)置函數(shù)與匿名函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
Python實(shí)現(xiàn)自動(dòng)簽到腳本的示例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)自動(dòng)簽到腳本的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
在Python中字典按值排序的實(shí)現(xiàn)方法
這篇文章主要介紹了在Python中字典按值排序的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
使用Python畫(huà)出小人發(fā)射愛(ài)心的代碼
今天小編就為大家分享一篇使用Python畫(huà)出小人發(fā)射愛(ài)心的代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
pymongo實(shí)現(xiàn)多結(jié)果進(jìn)行多列排序的方法
這篇文章主要介紹了pymongo實(shí)現(xiàn)多結(jié)果進(jìn)行多列排序的方法,涉及Python排序的相關(guān)技巧,需要的朋友可以參考下2015-05-05

