2009-07-02 28 views
0

PythonでJSONフィードを解析していて、この文字が含まれているため検証できません。Pythonでの外部シンボルの操作

これらのシンボルを処理する方法はありますか?彼らは改宗することができますか、それらを取り除くためにきれいな方法ですか?

私はこのシンボルが何で呼ばれているのか、何が原因であるのか分からず、そうでないと自分でそれを研究します。

EDIT:Stackoverフローので、ここで文字をストリッピングされています http://files.getdropbox.com/u/194177/symbol.jpg

それはおそらくあなたが持っているテキストは、エンコーディングのいくつかの並べ替えであることを意味し、「クラシック80年代」

+1

ここでは、コードスニペットとPythonバージョンの両方がおそらく関連しています。あなたのJSONフィードのエンコーディングを知っているなら、ボーナスポイント。 – Triptych

+1

JSONはUnicodeエンコーディング、UTF-8、UTF-16(BEまたはLE)、またはUTF-32(BEまたはLE)のいずれかでなければなりません 。プロデューサーが代わりにISO-8859-1またはwindows-1252で送信している可能性があります。ファイルを「間違った」エンコーディングとして読み込み、解析する前に修正することができます。 – lavinio

答えて

1

でそのシンボルです[?]どのエンコーディングを理解し、thetext.decode( 'encoding')呼び出しでUnicodeに変換する必要があります。

わかりませんが、表示されているディスプレイには[?]文字が含まれている可能性があります。表示する方法もわかりません。これはおそらくあなたが持っているデータが間違っていること、そしてあなたが使用するはずのエンコーディングに存在しない文字がそこにあることを意味します。これを処理するには、thetext.decode( 'encoding'、 'ignore')のようにデコードを呼び出します。 ignore以外にも、 "replace"、 "xmlcharrefreplace"などのオプションがあります。

0

JSONは、UTF-8、UTF-16、またはUTF-32のいずれかでエンコードする必要があります。 JSONファイルに現在のエンコーディングで違法なバイトが含まれていると、それはガベージです。

使用しているエンコードがわからない場合は、エンコード検出機能を含むjsonlibライブラリを使用して解析できます。 jsonlibを使用して解析されたJSONは、Unicode文字列としてプログラマーに提供されるため、エンコードについてまったく心配する必要はありません。

関連する問題