使用python读取SPSS数据集时出现UnicodeDecodeError错误
问题描述:
我正在尝试在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.
我如何可以读取当前数据集没有错误?
答
我在V24中看不到这个错误。 0xc3是带有波形的大写字母A,但看起来该代码需要utf-8。这封信将是utf-8中的C383。
你是在Unicode模式或代码页模式(SHOW UNICODE)?如果代码页,你的区域设置是什么(SHOW LOCALE)。什么版本的统计和什么平台?
如果您不是在Unicode模式,尝试更改为与SET UNICODE上或通过编辑>选项>语言。
此外,错误发生在哪里?应该有一个跟踪错误显示。代码改变为这
X = datasetObj.cases [I,0]
打印X
使错误的位置更加清楚。
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)很好参考。 –