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

2022/1/17 14:36:11

本文主要是介绍【Python】json.dumps() 时数据包含的中文转义为十六进制及转义输出,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

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】json.dumps() 时数据包含的中文转义为十六进制及转义输出的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程