python3 json.dump_python3处理json文件中含有中文dumps的应用

python3的编码问题一直比较简单

内存中字符串采用unicode

存储到文件中采用utf-8

以下为str,byte互相转换的过程:str = "abc学习"strOut[6]: 'abc学习'mybyte = str.encode("utf-8")mybyteOut[8]: b'abc\xe5\xad\xa6\xe4\xb9\xa0'str2 = mybyte.decode("utf-8")str2Out[10]: 'abc学习'

最近在写json相关的文件存取,遇到这样的问题:import jsonjson_str = """{"a": " 1", "f": "100\n", "b": "好好学习"}"""json_strOut[20]: '{"a": " 1", "f": "100\n", "b": "好好学习"}'json_str = json_str.encode('unicode_escape').decode('utf-8')json_strOut[22]: '{"a": " 1", "f": "100\\n", "b": "\\u597d\\u597d\\u5b66\\u4e60"}'json_data = json.loads(json_str, encoding="utf-8")json_dataOut[24]: {'a': ' 1', 'b': '好好学习', 'f': '100\n'}dumps_str = json.dumps(json_data, indent=4)dumps_strOut[26]: '{\n "f": "100\\n",\n "a": " 1",\n "b": "\\u597d\\u597d\\u5b66\\u4e60"\n}'json_data = json.loads(dumps_str)json_dataOut[28]: {'a': ' 1', 'b': '好好学习', 'f': '100\n'}

从上面的事例看出,通过string转成json后,再通过json.dumps转成字符串后,原先的好好学习变成了中文编码,存储到文件中也是中文编码,很不直观。

经过摸索,采用如下方法即可使得dumps转成中文(ensure_ascii=False)dumps_str = json.dumps(json_data, ensure_ascii=False, indent=4)dumps_strOut[30]: '{\n "f": "100\\n",\n "a": " 1",\n "b": "好好学习"\n}'

转载于:https://www.cnblogs.com/luhouxiang/p/7985834.html

点赞

收藏

分享

文章举报

dicuzhaoqin8950

发布了0 篇原创文章 · 获赞 0 · 访问量 918

私信

关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值