Python转json时出现中文乱码的问题及解决
目录
- python转json时出现中文乱码
- 设置报文头
- 连接数据库设置编码
- 将数据转换为json
- 设置json编码
- python json转json字符串时,中文被转义
- 核心
- 总结
Python转json时出现中文乱码
设置报文头
# -*- coding:gbk -*-
连接数据库设置编码
mysql = MySQLdb.connect(host='数据库,user=用户名,passwd=密码,db='数据库, init_command="set names gbk" )
将数据转换为json
jsonData = json.d编程umps(data, encoding='gbk',ensure_ascii=Fphp开发者_Go学习alse)
如果json数据中文显示有问题,变成 \uXXX的形式,原因是中文以变为unicode 编码了,而解码默认是以ASCII解的,中文不在ASCII编码中,所以无法显示,加上ensure_ascii=False可以防止变为unicode 编码。
设置json编码
jsonData = jsonData .encode('gbk')
python json转json字符串时,中文被转义
核心
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' ) curjssor = conn.c编程ursor() sql = "select * from users" cursor.execute(sql) # row_1 = cursor.fetchone() row_2 = cursor.fetchmany(3) # pjsrint(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转字符串中文转字符 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()
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
精彩评论