我正在编写一个函数,用于从xls / xlsx文件中读取数据并插入到db中。但问题是在从xls文件的单元格中读取数据后,该值变为浮点类型。
以下是来自xls文件的示例数据:
Zip Zone
35096
31723 1
35963
36037 D 21
36849 HANDLE
我正在使用from openpyxl.reader.excel import load_workbook
来读取xls文件。当我将这些值插入DB时,从 Zip 和区域列中读取了值后,所有数值都变为浮点类型,但应保存为字符串。上述2 db列的类型为 VARCHAR
从终端的xls文件读取后,我还打印了上面2列的值,结果如下:
ZIP
==========
<type 'float'>
35096.0
==========
<type 'float'>
31723.0
==========
<type 'float'>
35963.0
==========
<type 'float'>
36037.0
==========
<type 'float'>
36849.0
ZONE
==========
<type 'NoneType'>
==========
<type 'float'>
1.0
==========
<type 'NoneType'>
==========
<type 'unicode'>
D 21
==========
<type 'unicode'>
HANDLE
我的代码
try:
book = load_workbook(filename=file_path, use_iterators=True)
ws = book.worksheets[0]
except:
return 'Error message'
for row in (ws.iter_rows()):
zip = row[0].internal_value
zone = row[1].internal_value
其他信息:我在Ubuntu机器上使用python 2.6 如何解决这个问题。
答案 0 :(得分:0)
如果zip是序列,请尝试
zip = [str(fl) for fl in row[0].internal_value[:]]