今天对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天从入门到放弃'}}