有一段代码如下:

        def save_data(self,data):
            print(data)
            #ensure_ascii=False
            data=json.dumps(data)
            print(data)
            with open('ljd.json',mode='w',encoding='utf-8') as f:
                f.write(data)

date在传递进来之前是字典格式数据,现在为了能保存到文件中,因此用json.dumps(data)来将字典数据转换为json字符串,但是转换以后前后显示就有问题了,如下:

在这里插入图片描述

发现转换以后,中文乱码了。
原因:json.dumps 序列化时默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False:更深入分析,是应为dJSON object 不是单纯的unicode实现,而是包含了混合的unicode编码以及已经用utf-8编码之后的字符串。

更改如下:

        def save_data(self,data):
            print(data)
            #ensure_ascii=False
            data=json.dumps(data,ensure_ascii=False)
            print(data)
            with open('ljd.json',mode='w',encoding='utf-8') as f:
                f.write(data)

在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐