python – 从未知字符编码的字符串转储JSON
发布时间:2020-12-20 13:32:45 所属栏目:Python 来源:网络整理
导读:我正在尝试将 HTML从网站转储到 JSON,我需要一种方法来处理不同的字符编码. 我读过如果它不是utf-8,它可能是ISO-8859-1,所以我现在正在做的是: for possible_encoding in ["utf-8","ISO-8859-1"]: try: # post_dict contains,among other things,website ht
我正在尝试将
HTML从网站转储到
JSON,我需要一种方法来处理不同的字符编码.
我读过如果它不是utf-8,它可能是ISO-8859-1,所以我现在正在做的是: for possible_encoding in ["utf-8","ISO-8859-1"]: try: # post_dict contains,among other things,website html retrieved # with urllib2 json = simplejson.dumps(post_dict,encoding=possible_encoding) break except UnicodeDecodeError: pass if json is None: raise UnicodeDecodeError 如果我遇到任何其他编码,这当然会失败,所以我想知道在一般情况下是否有办法解决这个问题. 我之所以尝试序列化HTML的原因是因为我需要在POST请求中将它发送到我们的NodeJS服务器.所以,如果有人有一个不同的解决方案允许我这样做(可能根本没有序列化到JSON),我也很高兴听到这个. 解决方法
无论用于发送POST请求的媒体类型如何,您都应该知道字符编码(除非您想发送二进制blob).要获取html内容的字符编码,请参阅
A good way to get the charset/encoding of an HTTP response in Python . 要将post_dict作为json发送,请确保其中的所有字符串都是Unicode(只要您收到它就将html转换为Unicode)并且不要将编码参数用于json.dumps()调用.如果不同的网站(您获取html字符串的地方)使用不同的编码,该参数将无法帮助您. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |