开发者

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()

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜