Если вы обратите внимание на выход печати, полученный из приведенного ниже кода, вы заметите, что строковые переменные «экспортируются» в строки (что неудивительно), а числовые переменные преобразуются/экспортируются в плавающие.
Но переменные даты, однако, также преобразуются в поплавки. Дата, представленная как число секунд, прошедших с 14 октября 1582 года, - это способ, в котором SPSS хранит переменные даты, но в пределах SPSS есть various formats, что date может быть настроен для отображения как (значение поплавка, сохраненное внутри, конечно, остается неизменным).
входного файла переменных форматов:
Входной вид данных файла:
код для чтения данных SPSS в Python и результаты печати:
get file="C:\Program Files\IBM\SPSS\Statistics\23\Samples\English\Employee data.sav".
begin program.
import spss, spssdata
allfiles = spssdata.Spssdata().fetchall()
print "\n".join([str(i) for i in allfiles])
end program.
Выход:
namedTuple(1.0, u'm ', 11654150400.0, 15.0, 3.0, 57000.0, 27000.0, 98.0, 144.0, 0.0)
namedTuple(2.0, u'm ', 11852956800.0, 16.0, 1.0, 40200.0, 18750.0, 98.0, 36.0, 0.0)
namedTuple(3.0, u'f ', 10943337600.0, 12.0, 1.0, 21450.0, 12000.0, 98.0, 381.0, 0.0)
namedTuple(4.0, u'f ', 11502518400.0, 8.0, 1.0, 21900.0, 13200.0, 98.0, 190.0, 0.0)
namedTuple(5.0, u'm ', 11749363200.0, 15.0, 1.0, 45000.0, 21000.0, 98.0, 138.0, 0.0)
namedTuple(6.0, u'm ', 11860819200.0, 15.0, 1.0,0.0, 13500.0, 98.0, 67.0, 0.0)
namedTuple(7.0, u'm ', 11787552000.0, 15.0, 1.0, 36000.0, 18750.0, 98.0, 114.0, 0.0)
namedTuple(8.0, u'f ', 12103948800.0, 12.0, 1.0, 21900.0, 9750.0, 98.0, 0.0, 0.0)
namedTuple(9.0, u'f ', 11463897600.0, 15.0, 1.0, 27900.0, 12750.0, 98.0, 115.0, 0.0)
namedTuple(10.0, u'f ', 11465712000.0, 12.0, 1.0, 24000.0, 13500.0, 98.0, 244.0, 0.0)
namedTuple(11.0, u'f ', 11591424000.0, 16.0, 1.0, 30300.0, 16500.0, 98.0, 143.0, 0.0)
namedTuple(12.0, u'm ', 12094012800.0, 8.0, 1.0, 28350.0, 12000.0, 98.0, 26.0, 1.0)
namedTuple(13.0, u'm ', 11920867200.0, 15.0, 1.0, 27750.0, 14250.0, 98.0, 34.0, 1.0)
namedTuple(14.0, u'f ', 11561529600.0, 15.0, 1.0, 35100.0, 16800.0, 98.0, 137.0, 1.0)
namedTuple(15.0, u'm ', 11987654400.0, 12.0, 1.0, 27300.0, 13500.0, 97.0, 66.0, 0.0)
...
...