2016-12-15 98 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)很好参考。 –

相关问题