2016-12-15 110 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。

你是在Unicode模式或代碼頁模式(SHOW UNICODE)?如果代碼頁,你的區域設置是什麼(SHOW LOCALE)。什麼版本的統計和什麼平臺?

如果您不是在Unicode模式,嘗試更改爲與SET UNICODE上或通過編輯>選項>語言。

此外,錯誤發生在哪裏?應該有一個跟蹤錯誤顯示。代碼改變爲這
X = datasetObj.cases [I,0]
打印X

使錯誤的位置更加清楚。

+0

Unicode的 「碼點」 A與代字號(Ã)是'U + 00C3'。但是,OP的錯誤表示0xc3是部分十六進制的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)很好參考。 –

相關問題