簡體   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