Python转json时出现中文乱码的问题及解决

Python转json时出现中文乱码

设置报文头

# -*- coding:gbk -*-  

连接数据库设置编码

mysql = MySQLdb.connect(host='数据库,user=用户名,passwd=密码,db='数据库, init_command="set names gbk" ) 

将数据转换为json

jsonData = json.dumps(data, encoding='gbk',ensure_ascii=False)  

如果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'
)

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转字符串中文转字符
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()

总结

作者:超级可爱的小甜甜原文地址:https://blog.csdn.net/qq_41256881/article/details/121989764

%s 个评论

要回复文章请先登录注册