为什么在Python的JSON编码中出现UnicodeDecodeError?
我正在使用Solr 3.3索引数据库中的内容。我用Python编写了JSON内容。我设法
。但是当我尝试2027条记录时,Python给了我错误:
Traceback (most recent call last): File "<console>", line 1, in <module>
File "D:\Technovia\db_indexer\solr_update.py", line 69, in upload_service_details
request_string.append(param_list)
File "C:\Python27\lib\json\__init__.py", line 238, in dumps
**kw).encode(obj)
File "C:\Python27\lib\json\encoder.py", line 203, in encode
chunks = list(chunks)
File "C:\Python27\lib\json\encoder.py", line 425, in _iterencode
for chunk in _iterencode_list(o, _current_indent_level):
File "C:\Python27\lib\json\encoder.py", line 326, in _iterencode_list
for chunk in chunks:
File "C:\Python27\lib\json\encoder.py", line 384, in _iterencode_dict
yield _encoder(value)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x96 in position 68: invalid start byte
哎哟。512kb的字节数是基本限制吗?现有的JSON模块是否有大量替代品?
:由于尝试对 biz_list [2126:] 进行编码而导致的某些数据错误会立即导致错误。这是令人不快的片段:
‘Kaloor的Kadavanthra Road,\ nCochin 682 017 Gurumadhavendra Towers
2楼
我如何配置它以便可以将其编码为JSON?
:答案按预期工作:数据来自以“ latin-1-swedish-
ci”编码的MySQL表。我看到了随机数的意义。很抱歉,在诊断故障时会自发地传达头条新闻的精神。
回答:
很简单,如果您的数据不在utf-8中,请不要使用utf-8编码
>>> json.loads('["\x96"]')....
UnicodeDecodeError: 'utf8' codec can't decode byte 0x96 in position 0: invalid start byte
>>> json.loads('["\x96"]', encoding="latin-1")
[u'\x96']
如果
s
是str
实例,并且使用utf-8(例如latin-1)以外的基于ASCII的编码进行编码,则encoding
必须指定适当的名称。不允许使用非基于ASCII的编码(例如UCS-2),并且应首先解码
unicode
。
:要获取正确的unicode值“ \ x96”,请使用“ cp1252”,如Eli Collins所述
>>> json.loads('["\x96"]', encoding="cp1252")[u'\u2013']
以上是 为什么在Python的JSON编码中出现UnicodeDecodeError? 的全部内容, 来源链接: utcz.com/qa/418923.html