Python从字符串中删除编码字符

时间:2015-11-25 00:16:50

标签: python json

我有一个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")

我想知道如何从任何字符串中删除所有“复杂”字符。

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"}'