ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

json.dumps()包装中文字符串

2019-11-26 13:00:49  阅读:260  来源: 互联网

标签:None False dumps json ensure 字符串 ascii


json.dumps() 包装中文字符串

开发环境
  1. 系统: ubuntu18.04
  2. 系统编码: $LANG = en_US.UTF-8
  3. python解释器版本: Python 3.6.7
乱码现场

使用 json.dumps() 将 dict 转化为 json 数据的时候, 中文会显示为对应的 unicode 编码形式

demo:

param = {
        "code": "0",
        "message": "中文内容"
    }
param1 = json.dumps(param, ensure_ascii=False)
param2 = json.dumps(param)
print(param1)
print(param2)

输出内容:

param1:  {"code": "0", "message": "中文内容"}
param2:  {"code": "0", "message": "\u4e2d\u6587\u5185\u5bb9"}

并非乱码, 其实是 unicode 的16进制表示形式.

分析

区别在于 ensure_ascii=False 这个参数, 看下 json.dumps() 的方法的源码:

def dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True,
        allow_nan=True, cls=None, indent=None, separators=None,
        default=None, sort_keys=False, **kw):
    ...
    
    # 如果 ensure_ascii 为false,则返回值可以包含非ascii值
    If ``ensure_ascii`` is false, then the return value can contain non-ASCII
    characters if they appear in strings contained in ``obj``. Otherwise, all
    such characters are escaped in JSON strings.
    
    ...
ending ~

标签:None,False,dumps,json,ensure,字符串,ascii
来源: https://www.cnblogs.com/kaichenkai/p/11934761.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有