Python读取json报错【已解决】UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb0 in position 37: invalid start byte
在使用python读取json文件时,突然开始报错
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb0 in position 37: invalid start byte
主要原因还是编码解码不匹配的问题,UTF-8
原来代码:
for i in range(0, len(count)):
path = os.path.join(json_file, count[i])
if os.path.isfile(path):
data = json.load(open(path))
解决:
for i in range(0, len(count)):
path = os.path.join(json_file, count[i])
if os.path.isfile(path):
try:
# 首先尝试使用 UTF-8 编码
with open(path, 'r', encoding='utf-8') as f:
data = json.load(f)
except UnicodeDecodeError:
try:
# 如果 UTF-8 编码失败,尝试使用 ISO-8859-1 编码
with open(path, 'r', encoding='ISO-8859-1') as f:
data = json.load(f)
except Exception as e:
# 如果再次失败,打印错误信息
print(f"Error reading {path}: {e}")