2

xls/xlsx ファイルからデータを読み取り、db に挿入する関数を作成しています。しかし問題は、xls ファイルのセルからデータを読み取った後、値が float 型になることです。

以下は、xls ファイルからのサンプル データです。

Zip     Zone
35096       
31723   1
35963       
36037   D 21
36849   HANDLE

私はfrom openpyxl.reader.excel import load_workbookxlsファイルを読むために使用しています。これらの値をDBに挿入するときにZipおよびZone列から値を読み取った後、すべての数値は浮動小数点型になりますが、文字列として保存する必要があります。2 db を超える列の型はVARCHARです

また、ターミナルで xls ファイルから読み取った後、上記の 2 列の値を出力しました。結果は次のとおりです。

ジップ

==========
<type 'float'>
35096.0
==========
<type 'float'>
31723.0
==========
<type 'float'>
35963.0
==========
<type 'float'>
36037.0
==========
<type 'float'>
36849.0

ゾーン

==========
<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

その他の情報: Python 2.6 を使用しており、Ubuntu マシンでこれを解決する方法。

4

1 に答える 1

0

zip がシーケンスの場合

zip = [str(fl) for fl in row[0].internal_value[:]]
于 2013-08-29T10:14:09.113 に答える