【问题标题】:json encoded as UTF-8 characters. How do I process as json in Python Requestsjson 编码为 UTF-8 字符。如何在 Python 请求中处理为 json
【发布时间】:2014-05-29 03:13:34
【问题描述】:

我正在抓取一个呈现如下所示 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 对象进行处理以进行解析和读取。

我们将不胜感激!

【问题讨论】:

    标签: python json http request


    【解决方案1】:

    那不是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">
    

    【讨论】:

    • 这对我不起作用。我收到这样的错误.. UnicodeEncodeError: 'ascii' codec can't encode character '\xbb' in position 33759: ordinal not in range(128)
    • 这与我给你的代码无关。您需要删除您在问题中发布的normalize/encode 函数。
    • 不,我已经删除了这些功能。我正在尝试直接处理这个。尝试打印unescaped 时抛出错误
    • 我明白了。一些具有较旧 Python 版本的机器存在此问题。这里有针对print 问题的解决方法:stackoverflow.com/questions/3224268/python-unicode-encode-error
    • 我现在可以打印它了,但是 HTMLParser 似乎没有转义任何东西。相同的表示
    猜你喜欢
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 2015-10-17
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多