我最近玩python遇到使用json.loads转换json内容时,如果里面包含:
或Ⅰ·Ⅱ·Ⅲ·Ⅳ·Ⅴ·Ⅵ·Ⅶ·Ⅷ·Ⅸ·Ⅹ·Ⅺ·Ⅻ
这些特殊字符时,就会报错。
UnicodeEncodeError: ‘ascii’ codec can’t encode character ‘\uff1a’ in position 40: ordinal not in range(128)
报错代码如下:
1 | File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen |
这个问题困扰我好几天,中间折腾的过程就不多说了。
下面说一下我的解法方法,灵感来自上面这段报错代码的第17和18行。
首先用vi或nano等编辑器,打开/usr/lib/python3.5/http/client.py
这个文件,然后定位到984行。将self._output(request.encode('ascii'))
修改成self._output(request.encode('utf-8'))
。重新跑代码后完美解决。