我有一个json,例如:
item = {"name": '\x84\xa2 Target', ...}
在以:
结尾的函数中return json.dumps(item, ensure_ascii=True)
运行该函数会导致此错误:
UnicodeDecodeError:'utf8'编解码器无法解码位置6的字节0x84:无效的起始字节
我试过了
return json.dumps(item, ensure_ascii=False).encode('utf-8')
但这会产生同样的错误。
下面的代码确实“有效”,但它发出的json会混淆其他代码(不在我的最后):
return json.dumps(item, encoding="ISO-8859-1")
我想知道如何从任何字符串中删除所有“复杂”字符。
答案 0 :(得分:0)
这是愚蠢的,但似乎有效:
"".join([c for c in json.dumps(item, ensure_ascii=False) if c in string.printable])
来自
item = {"name": '\x84\xa2 Target'}
它返回
'{"name": " Target"}'