hex轉(zhuǎn)ascii碼并且進行html unescape

在獲取的json評論中包含如下特殊數(shù)據(jù):

f({
    "version": "v2",
    "errcode": "0",
    "errmsg": "",
        
    "result":{
        "comments": [
            
                { 
                    "id": "13392158929",
                    "topped": "0",
                    "guid": "4bd7882a-5177-4a2c-a872-f32f66426a06",
                    "content": "外形外觀:可以接受屏幕音效:屏幕不靈敏\x26hellip\x3B音效非常非常差今時今日還做出這樣的手機\x26hellip\x3B表示無語\x26hellip\x3B買了只能將就用吧!拍照效果:對于老人家來說可以接受運行速度:老人家不玩游戲\x26hellip\x3B還是可以的待機時間:不理想其他特色:沒有什么物色\x26hellip\x3B原以為華為崛起:\x26hellip\x3B性價比較低\x26hellip\x3B!",
                    "creationTime": "2019-11-01 09:55:58",
                    . . . . . . 
                    "userClientShow": "來自京東Android客戶端",
                }
                ,
            
                { 
                    "id": "13391208100",
                    "topped": "0",
                    "guid": "d4a74074-3edb-4da1-b201-008bee226dfb",
                    "content": "不錯",
                    "creationTime": "2019-10-31 23:28:34",
                    
                    "isTop": false,
                    
                    "referenceId": "100003599639",
                    "referenceImage": "jfs/t1/41065/9/5364/252918/5cee30b8E22c3ea99/5d652e51051b7bdf.jpg",
                    "referenceName": "華為 HUAWEI 麥芒 8 超廣角AI三攝 高清珍珠屏 大存儲  6GB+128GB 幻夜黑 全網(wǎng)通雙4G手機",
                    "referenceTime": "2019-10-29 21:13:04",
                    "referenceType": "Product",
                    . . . . . . 
                    "userClientShow": "來自京東Android客戶端",
                }

        ]
    }
})

觀察這個類JSON有三處問題:

  1. f(....)所有數(shù)據(jù)在括號內(nèi);
  2. {}中的最后一個屬性:"userClientShow": "來自京東Android客戶端", 以逗號結(jié)尾(并非每個都有逗號);
  3. 最難的是里面有:\x26hellip\x3B這樣的特殊數(shù)據(jù)。

處理方案:

1.最簡單:content.strip().lstrip('f(').rstrip(')')即可;

  1. userClientShow帶逗號時Json.loads時會拋異常, 可以通過:
re.sub('("userClientShow.*),', '\g<1>', text) 

匹配帶“,”的userClientShow,然后去掉“,”并將文本替換到原處;

  1. 麻煩點,觀察發(fā)現(xiàn)語句:
    “形外觀:可以接受屏幕音效:屏幕不靈敏\x26hellip\x3B音效非常非常差今時今日還做出這樣的手機”
    中的特殊“\x26hellip\x3B”需要經(jīng)過如下變形方可:“\x26hellip\x3B”→“& hellip ;”→“...”

首先: “\x26hellip\x3B”→“& hellip ;”

    def _hex(self, __hex):
       return chr(int(__hex.group()[2:], 16))

    content= re.sub(r'\\x.{2}', self._hex, content)

然后: “& hellip ;”→“...”

text = HTMLParser.HTMLParser().unescape(text)

解決。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 8月22日-----字符串相關(guān) 2-3 個性化消息: 將用戶的姓名存到一個變量中,并向該用戶顯示一條消息。顯示的消...
    future_d180閱讀 1,029評論 0 1
  • 常用模塊 認識模塊 什么是模塊 什么是模塊? 常見的場景:一個模塊就是一個包含了python定義和聲明的文件,文...
    go以恒閱讀 2,167評論 0 6
  • pyton review 學習指南 https://www.zhihu.com/question/29138020...
    孫小二wuk閱讀 1,181評論 0 2
  • python知識筆記 python setup.py install [::-1] list倒序for k in ...
    天劍飛心閱讀 521評論 0 0
  • 今天,你讀了嗎? 天氣在變,思念不變;季節(jié)在變,關(guān)懷不變;歲月在變,問候不變;距離在變,友情不變。不管世界怎么變,...
    春暖花開6091閱讀 274評論 0 0

友情鏈接更多精彩內(nèi)容