UnicodeDecodeError:\'utf8\'编解码器无法解码位置3-6中的字节:无效数据
|
unicode是如何在python2上工作的?我就是不明白。
在这里,我从服务器下载数据并解析为JSON。
Traceback (most recent call last):
File \"/usr/local/lib/python2.6/dist-packages/eventlet-0.9.12-py2.6.egg/eventlet/hubs/poll.py\", line 92, in wait
readers.get(fileno, noop).cb(fileno)
File \"/usr/local/lib/python2.6/dist-packages/eventlet-0.9.12-py2.6.egg/eventlet/greenthread.py\", line 202, in main
result = function(*args, **kwargs)
File \"android_suggest.py\", line 60, in fetch
suggestions = suggest(chars)
File \"android_suggest.py\", line 28, in suggest
return [i[\'s\'] for i in json.loads(opener.open(\'https://market.android.com/suggest/SuggRequest?json=1&query=\'+s+\'&hl=de&gl=DE\').read())]
File \"/usr/lib/python2.6/json/__init__.py\", line 307, in loads
return _default_decoder.decode(s)
File \"/usr/lib/python2.6/json/decoder.py\", line 319, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File \"/usr/lib/python2.6/json/decoder.py\", line 336, in raw_decode
obj, end = self._scanner.iterscan(s, **kw).next()
File \"/usr/lib/python2.6/json/scanner.py\", line 55, in iterscan
rval, next_pos = action(m, context)
File \"/usr/lib/python2.6/json/decoder.py\", line 217, in JSONArray
value, end = iterscan(s, idx=end, context=context).next()
File \"/usr/lib/python2.6/json/scanner.py\", line 55, in iterscan
rval, next_pos = action(m, context)
File \"/usr/lib/python2.6/json/decoder.py\", line 183, in JSONObject
value, end = iterscan(s, idx=end, context=context).next()
File \"/usr/lib/python2.6/json/scanner.py\", line 55, in iterscan
rval, next_pos = action(m, context)
File \"/usr/lib/python2.6/json/decoder.py\", line 155, in JSONString
return scanstring(match.string, match.end(), encoding, strict)
UnicodeDecodeError: \'utf8\' codec can\'t decode bytes in position 3-6: invalid data
谢谢!!
编辑:以下字符串导致错误:\'[{\"t\":\"q\",\"s\":\"abh\\xf6ren\"}]\'
。 \\xf6
应解码为ö
(abhören)
没有找到相关结果
已邀请:
8 个回复
联海
它将处理JSON消息中可能出现的所有变音符号。 您应该阅读Joel Spolsky的《每个软件开发人员绝对,肯定地必须了解Unicode和字符集的绝对最低要求》(无借口!)。我希望它能澄清您在Unicode方面遇到的一些问题。
骨酚柯
埃庐
返回的类似文件的对象传递给
,而不是将所有数据读入字符串并将其传递给
。)
皇小福另届
疮痪徘弦漏
,问题消失了。
缕嚏冻
晤默报
羔磺
-如果返回的是UTF-8,这应该可以工作。
返回字节,您必须将其解码为unicode字符串。另外,从http://bugs.python.org/issue4733检查补丁将很有帮助