繁体   English   中英

json编码为UTF-8字符。 如何在Python请求中作为json处理

[英]json encoded as UTF-8 characters. How do I process as json in Python Requests

我正在抓取一个呈现如下JavaScript / JSON对象的网站:

{ "company": "\r\n            \x3cdiv class=\"page-heading\"\x3e\x3ch1\x3eSEARCH
 RESULTS 1 - 40 OF 200\x3c/h1\x3e\x3c/div\x3e\r\n\r\n             
\x3cdiv class=\"right-content-list\"\x3e\r\n\r\n                
\x3cdiv class=\"top-buttons-adm-lft\"\x3e\r\n   

我正在尝试使用Python的Requests库将其作为JSON对象(看起来像这样)进行处理。

我使用以下方法来编码/处理文本:

unicodedata.normalize("NFKD", get_city_json.text).encode('utf-8', 'ignore')
unicodedata.normalize("NFKD", get_city_json.text).encode('ascii', 'ignore')
unicode(get_city_json.text)

但是,即使反复尝试,该文本仍使用UTF-8编码及其字符来呈现。 Web应用程序返回的Content-Type是"text/javascript; charset=utf-8"

我希望能够将其作为常规的JSON / JavaScript对象进行解析和读取。

帮助将不胜感激!

那不是UTF-8 它是HTML编码的文本。

您可以使用以下方法对其进行解码:

Python 2

import HTMLParser
html_parser = HTMLParser.HTMLParser()
unescaped = html_parser.unescape(json_value)
print unescaped

Python 3

import html.parser    
html_parser = html.parser.HTMLParser()
unescaped = html_parser.unescape(json_value)
print unescaped

如果您用这些字符串解串,您应该得到

<div class="page-heading"><h1>SEARCH RESULTS 1 - 40 OF 200</h1></div>
<div class="right-content-list">
<div class="top-buttons-adm-lft">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM