Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python从字符串中删除编码字符_Python_Json - Fatal编程技术网

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

Python从字符串中删除编码字符,python,json,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,例如:

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混淆了后面的其他代码(不是我这边):


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

这很愚蠢,但似乎可行:

"".join([c for c in json.dumps(item, ensure_ascii=False) if c in string.printable])

它回来了

'{"name": " Target"}'

您是否尝试过
json.dumps(item).encode('ascii','ignore')
?这会给出一个:return\u iterencode(o,0)UnicodeDecodeError:'utf8'编解码器无法解码位置6:invalid start byteAs中的字节0x84,因为这里发生了什么:json.dumps(item,确保\u ascii=False)将返回实际字符串而不是对象,但将保留UTF字符。然后,我使用列表理解将字符串视为列表,并根据可打印字符列表检查每个字符,然后使用join将其转换回字符串。
item = {"name": '\x84\xa2 Target'}
'{"name": " Target"}'