UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 78: illegal multibyte sequence

今天对json文件进行读取测试过程中报错:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 78: illegal multibyte sequence
测试代码如下:

import json
f = open('test.json', 'r')
content = f.read()          # 读取文件
dict = json.loads(content)     # 载入文件内容并转换为python字典
print(type(dict))
print(dict)
f.close()

原因是读取的json文件中存在中文字符。
解决办法是指定文件读取格式为utf-8模式。修改后代码如下:

import json
f = open('test.json', 'r', encoding='utf8')
content = f.read()          # 读取文件
dict = json.loads(content)     # 载入文件内容并转换为python字典
print(type(dict))
print(dict)
f.close()

结果输出如下:

<class 'dict'>
{'name': 'dabao', 'id': 123, 'hobby': {'sport': '篮球', 'book': '21天从入门到放弃'}}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容