2016-12-15 9 views
-1

値を変更する構文をSPSSに書き込もうとしています。私は私のデータセットを読み込むしようとすると、それは最初の243個のエントリを読むことができますが、読み取りエラーで失敗します。PythonでSPSSデータセットを読むときのUnicodeDecodeError

UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 253: unexpected end of data 

マイコード:私はエラーなしで現在のデータセットを読み込むことができますどのように

BEGIN PROGRAM. 
import json, re, spss 

spss.StartDataStep() 
datasetObj = spss.Dataset() 
for i in range(len(datasetObj.cases)): 
    print datasetObj.cases[i,0] 
spss.EndDataStep() 

END PROGRAM. 

答えて

0

V24でこれを試してもエラーは表示されません。 0xc3はチルダ付きの大文字Aですが、コードではutf-8が必要です。その手紙はutf-8でC383になるでしょう。

ユニコードモードまたはコードページモード(SHOW UNICODE)になっていますか?コードページの場合、あなたのロケールは何ですか(SHOW LOCALE)。どのバージョンの統計情報とどのプラットフォームですか?

ユニコードモードでない場合は、SET UNICODE ONまたは編集>オプション>言語を使用してUnicodeモードに切り替えてみてください。

また、正確にエラーが発生するのはどこですか?エラー表示とともにトレースバックがあるはずです。この
X = datasetObj.cases〔iは、0]
プリントX

、エラーの位置をより明確にするためにコードを変更します。

+0

ティルド(Ã)を含むAのUnicode「コードポイント」は、「U + 00C3」です。しかし、OPのエラーは、0xc3という部分的な16進数のUTF-8コードです。 '0x'を取り除くと' c3'が残ってしまいます。文字自体ではありません。 UTF-8エンコーディングのÃは 'C383'以上です:' 0xC3 0x83'です。同様に、ストロークのある資本O(Ø)は '0xC3 0x98'です。結論:UTF-8コードの '0xC3'には、常に別のコードが続きます。 '0xC3'だけが文字ではないので、デコードできません。 '0xC3'は拡張ラテン文字セットに使われます。 [このリスト](http://www.fileformat.info/info/charset/UTF-8/list.htm)は参考にしてください。 –

関連する問題