2009-07-02 27 views
0

我正在解析Python中的JSON提要,它包含這個字符,導致它不能驗證。在python中使用外國符號

有沒有辦法處理這些符號?他們可以轉換,或者他們是一個整潔的方式來消除它們?

我甚至不知道這個符號被稱爲什麼或導致它們是什麼,否則我會自己研究它。

編輯:Stackover流程是這樣這裏剝字符:[?] http://files.getdropbox.com/u/194177/symbol.jpg

這是該符號在「經典80」

+1

代碼片段和你的Python版本在這裏可能都是相關的。獎勵積分,如果你知道你的JSON提要的編碼。 – Triptych 2009-07-02 18:40:04

回答

1

這可能意味着你的文本是某種編碼,你需要弄清楚什麼編碼,並用thetext.decode('encoding')調用將其轉換爲Unicode。

我不確定,但它可能是[?]字符,這意味着您在那裏的顯示器也不知道如何顯示它。這可能意味着你擁有的數據是不正確的,並且在那裏有一個字符在編碼中不存在,你應該使用它。爲了處理這個問題,你可以像這樣調用解碼:thetext.decode('encoding','ignore')。除了忽略之外,還有其他選項,如「替換」,「xmlcharrefreplace」等。

0

JSON必須以UTF-8,UTF-16或UTF-32之一進行編碼。如果一個JSON文件包含當前編碼中不合法的字節,那就是垃圾。

如果您不知道使用哪種編碼,則可以嘗試使用包含編碼檢測器的我的jsonlib庫進行解析。使用jsonlib解析的JSON將作爲Unicode字符串提供給程序員,因此您不必擔心編碼問題。