您可能应该对任何正在运行此服务的人大喊大叫,因为UTF-8文本上的BOM毫无意义。BOM的存在是为了消除字节顺序的歧义,UTF-8被定义为低位字节序。
就是说,理想情况下,您应该先对字节进行解码,然后再对它们进行其他操作。幸运的是,Python有一个编解码器可以识别和删除BOM :utf-8-sig
。
>>> '\xef\xbb\xbffoo'.decode('utf-8-sig')
u'foo'
因此,您只需要:
data = json.loads(response.decode('utf-8-sig'))