可恶的BOM头!!!

原因

同事反馈一个接口返回的json数据,在python里load不出来。

Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    r.json()
  File "C:\Python27\lib\site-packages\requests\models.py", line 797, in json
    return json.loads(self.text, **kwargs)
  File "C:\Python27\lib\json\__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

查了下说是前面多了个BOM头。

解决方法:

  1. 查找是哪个文件带BOM头。

    grep -r -I -l $'^\xEF\xBB\xBF' ./
  2. vim 打开文件,输入下面命令,保存退出。

    :set nobomb

参考资料:
http://blog.sina.com.cn/s/blog_6660ced80100x9er.html

标签: none

添加新评论