一尘不染

Python使用UTF-8 BOM头加载json文件

json

我需要解析其他工具生成的文件,该工具无条件输出带有UTF-8 BOM头(EFBBBF)的json文件。我很快发现这就是问题所在,因为Python
2.7模块似乎无法解析它:

>>> import json
>>> data = json.load(open('sample.json'))

ValueError: No JSON object could be decoded

删除BOM可以解决问题,但是我想知道是否还有另一种使用BOM头解析json文件的方法?


阅读 298

收藏
2020-07-27

共1个答案

一尘不染

您可以打开codecs

import json
import codecs

json.load(codecs.open('sample.json', 'r', 'utf-8-sig'))

utf-8-sig自己解码并传递给loads

json.loads(open('sample.json').read().decode('utf-8-sig'))
2020-07-27