Python 'None' 值显示为 -2147483648
Python 'None' value appearing as -2147483648
我正在使用模块 pypxlib 从 Paradox 数据库文件 (.DB) 读取数据文件。
在读取每一行的同时,我写入 CSV。
出于某种原因,预期为 'None' 的值显示为数字 -2147483648。
有谁知道这个数字的意义吗?为什么会出现这个错误?
代码如下:
for idx in range(0,len(matches)): #for each file found
print "processing %s" % matches[idx]['file']
#outputfile = path.join('./output/' + form_file_name(dbfile) + '.csv')
try:
myTable = Table(matches[idx]['file']) #class from pypxlib that takes a filepath
cols = [] #and creates a 'table' that can be read
for col in myTable.fields: #gets fields from the table
cols.append(col)
pTable = []
with open(output_folder +"/myoutput_" + matches[idx]['f'] + ".csv", "wb") as f:
writer = csv.writer(f)
writer.writerow(cols)
rowcount = 0
for row in myTable: # for every row in table
myRow = []
for fld in cols: # for every cell in the row
myRow.append(row[fld]) #append cell to the row
writer.writerow(myRow) #then write the row to the csv
rowcount = rowcount + 1
if rowcount >= 100:
break #just testing on the first 1000 records
Paradox 表包含多种数字类型,包括 'Number'(64 位浮点数)、'Long Integer'(32 位有符号整数)和 'Short'(16 位有符号整数).这些类型中的每一种都有一个带内值,指定用于表示 'blank' 以区别于零。这些是您期望的值 'None'.
当 pxlib 库和 pypxlib 包装器将 Paradox 数据转换为 Python 数据类型时,'blank' 的带内值转换为 1 后跟全 0。在二进制补码表示法中,这是在正方向和负方向上离零最远的值。
如果 BDE 类型是 'Long Integer' 那么这确实表示为 -2147483648。
我正在使用模块 pypxlib 从 Paradox 数据库文件 (.DB) 读取数据文件。
在读取每一行的同时,我写入 CSV。
出于某种原因,预期为 'None' 的值显示为数字 -2147483648。
有谁知道这个数字的意义吗?为什么会出现这个错误?
代码如下:
for idx in range(0,len(matches)): #for each file found
print "processing %s" % matches[idx]['file']
#outputfile = path.join('./output/' + form_file_name(dbfile) + '.csv')
try:
myTable = Table(matches[idx]['file']) #class from pypxlib that takes a filepath
cols = [] #and creates a 'table' that can be read
for col in myTable.fields: #gets fields from the table
cols.append(col)
pTable = []
with open(output_folder +"/myoutput_" + matches[idx]['f'] + ".csv", "wb") as f:
writer = csv.writer(f)
writer.writerow(cols)
rowcount = 0
for row in myTable: # for every row in table
myRow = []
for fld in cols: # for every cell in the row
myRow.append(row[fld]) #append cell to the row
writer.writerow(myRow) #then write the row to the csv
rowcount = rowcount + 1
if rowcount >= 100:
break #just testing on the first 1000 records
Paradox 表包含多种数字类型,包括 'Number'(64 位浮点数)、'Long Integer'(32 位有符号整数)和 'Short'(16 位有符号整数).这些类型中的每一种都有一个带内值,指定用于表示 'blank' 以区别于零。这些是您期望的值 'None'.
当 pxlib 库和 pypxlib 包装器将 Paradox 数据转换为 Python 数据类型时,'blank' 的带内值转换为 1 后跟全 0。在二进制补码表示法中,这是在正方向和负方向上离零最远的值。
如果 BDE 类型是 'Long Integer' 那么这确实表示为 -2147483648。