ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【Python】json.dumps() 时数据包含的中文转义为十六进制及转义输出

2022-01-17 13:00:49  阅读:395  来源: 互联网

标签:十六进制 Python 转义 dumps json ensure print ascii


 

json.dumps() 时数据包含中文会将中文转义为十六进制

官方给的参数注释:如果ensure_ascii=false且字符在字符串中包含obj,则返回值可包含non-ascii字符;否则,字符在JSON字符串中文被转义

 

s = {"name": "张三", "addr": "北京市"}
print("ensure_ascii默认", json.dumps(s))
print("ensure_ascii=False", json.dumps(s, ensure_ascii=False))
print("ensure_ascii=True", json.dumps(s, ensure_ascii=True))

 

运行结果

ensure_ascii默认 {"name": "\u5f20\u4e09", "addr": "\u5317\u4eac\u5e02"}
ensure_ascii=False {"name": "张三", "addr": "北京市"}
ensure_ascii=True {"name": "\u5f20\u4e09", "addr": "\u5317\u4eac\u5e02"}

进程已结束,退出代码为 0

 

 

 


 转义dict

import ast
import json


dic1 = {"info": "abaaba", "recode": "200", "remsg": ""}
dic2 = {"msg": "balabal", "state": "20000"}
print(dic1)
print(dic2)

jd = json.dumps(str(dic2).replace("'", '"'))
dic1.update({"remsg": ast.literal_eval(jd)})
print(json.dumps(dic1, ensure_ascii=False))

 

运行结果

{'info': 'abaaba', 'recode': '200', 'remsg': ''}
{'msg': 'balabal', 'state': '20000'}
{"info": "abaaba", "recode": "200", "remsg": "{\"msg\": \"balabal\", \"state\": \"20000\"}"}

进程已结束,退出代码为 0

 

标签:十六进制,Python,转义,dumps,json,ensure,print,ascii
来源: https://www.cnblogs.com/phoenixy/p/15812982.html

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

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

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

ICode9版权所有