我需要解析其他工具生成的文件,该工具无条件输出带有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文件的方法?
您可以打开codecs:
codecs
import json import codecs json.load(codecs.open('sample.json', 'r', 'utf-8-sig'))
或utf-8-sig自己解码并传递给loads:
utf-8-sig
loads
json.loads(open('sample.json').read().decode('utf-8-sig'))