zoukankan      html  css  js  c++  java
  • python 数据写入json文件时中文显示Unicode编码问题

    一、问题描述

    import json
    
    dir = {
        '春晓':'asfffa',
        '春眠不觉晓' : '处处闻啼鸟',
        '夜来风雨声' : 56789,
        'asdga':'asdasda'
    }
    
    fp = open('G:/aa.json', 'w')
    fp.write(json.dumps(dir))
    fp.close()

    上边这段代码把字典转为json后,写入json文件中。当打开json文件时,会发现里边的中文全都变成Unicode编码,如下所示

    {"u6625u6653": "asfffa", "u6625u7720u4e0du89c9u6653": "u5904u5904u95fbu557cu9e1f", "u591cu6765u98ceu96e8u58f0": 56789, "asdga": "asdasda"}

     二、原因

    为什么数据导出时,中文会变成Unicode编码?

    json.dumps()方法将dict的数据转换为string数据,然后将string写入到文本中,但是json.dumps()方法会默认将其中unicode码以ascii编码的方式输入到string。

    三、解决办法

    在json.dumps()方法中加入一个参数,并把值设置为False(默认为True)

    fp.write(json.dumps(dir,ensure_ascii=False))

    设置了这个参数后,完美解决

  • 相关阅读:
    Java中抽象类和接口的区别
    servlet的转发与重定向
    JSP知识点
    过滤器与拦截器
    java关键字 super 和 this
    oracle 基础
    java 集合
    java 内部类
    java 数组详解
    图,深度优先遍历与广度优先遍历
  • 原文地址:https://www.cnblogs.com/bear7/p/12632167.html
Copyright © 2011-2022 走看看