Python保存json文件,英文内容出现乱码

发布于:2022-10-17 ⋅ 阅读:(528) ⋅ 点赞:(0)

处理json文件乱码问题


前言

在爬取网页内容是,有的时候会爬取到带有特殊符号的英文名字,如”J. Valančiūnas“,但是在保存json文件的时候,会出现乱码的情况。

下图是我保存的json文件,文件内容出现的乱码

在这里插入图片描述

而我爬取的网页中的人名是:“J. Valančiūnas”

在这里插入图片描述

接下来解决这个问题!!!

方法

首先尝试写一段代码,模拟以上问题

import json
file = open('test_data.json', mode='w')
d = {}
d['hometeam_name'] = 'yongshi'
d['awayteam_name'] = 'kaierteren'
d['player'] = 'J. Valančiūnas'
d['events'] = []
c = {'a' : 'b'}
f = {'haha':'heihei'}
d['events'].append(c)
d['events'].append(f)
print(d)
json_str = json.dumps(d)
print(json_str)
file.write(json_str)
file.close()
print("json文件写入完成")

输出如下:

{'hometeam_name': 'yongshi', 'awayteam_name': 'kaierteren', 'player': 'J. Valančiūnas', 'events': [{'a': 'b'}, {'haha': 'heihei'}]}
{"hometeam_name": "yongshi", "awayteam_name": "kaierteren", "player": "J. Valan\u010di\u016bnas", "events": [{"a": "b"}, {"haha": "heihei"}]}
json文件写入完成

果然,文件中的也是乱码:

在这里插入图片描述
修改代码:

import json
file = open('test_data.json', mode='w', encoding='utf-8')
d = {}
d['hometeam_name'] = 'yongshi'
d['awayteam_name'] = 'kaierteren'
d['player'] = 'J. Valančiūnas'
d['events'] = []
c = {'a' : 'b'}
f = {'haha':'heihei'}
d['events'].append(c)
d['events'].append(f)
print(d)
json_str = json.dumps(d, ensure_ascii=False)
print(json_str)
file.write(json_str)
file.close()
print("json文件写入完成")

输出如下:

{'hometeam_name': 'yongshi', 'awayteam_name': 'kaierteren', 'player': 'J. Valančiūnas', 'events': [{'a': 'b'}, {'haha': 'heihei'}]}
{"hometeam_name": "yongshi", "awayteam_name": "kaierteren", "player": "J. Valančiūnas", "events": [{"a": "b"}, {"haha": "heihei"}]}
json文件写入完成

文件中的内容:

在这里插入图片描述
问题解决!!!

本文含有隐藏内容,请 开通VIP 后查看