2016-11-14 5 views
1

xlrdを使用して、.xlsxファイルをJSON形式に解析しています。カンマとドットで問題が発生しました。Python XLRDでカンマをドットに置き換えます

私のExcelファイルに入力した値:152,203。私はこの値を152.203の値に解析したいと思いますが、運はまだありません。値は152となり問題ありません。オランダ語ではコンマがドットとして使用されることが多いため、この間違いを犯さなければなりません。

部分的なコード例:

key3 = OrderedDict() 
row_values3 = sheet.col_values(1, 0, 60) 

comma_to_dot = row_values3[36] # cell with 152,203 
key3['Value'] = comma_to_dot.replace(",",".") 

data.append(key3)  

j = json.dumps(data) 

with open(full_path, 'w') as datafile: 
    datafile.write(j) 

print(full_path) 

このコードは、エラーを与える:AttributeError: 'float' object has no attribute 'replace'

私も試してみました:

key3['Value'] = int(row_values3[36]) 

をしかし、これはまた、あなたがどのように152

+0

JSONは浮動小数点数を 'x.y'にする必要があり、千個の区切り文字を数字で使用することはできません。どのように*表示*するかはロケールの問題です。これは、ユーザーがデータを見るどのようなUIでも処理する必要があります。 – jonrsharpe

+0

私はそれを得るが、カンマを1つの値でドットに変更したいだけだ。これらは1つまたは2つのカンマでなければなりません。 –

+0

Excelでロケールを設定する必要があるようですが、これはXLRDと実際には関係ありません。エラーメッセージが示すように、文字列ではなく浮動小数点数*を返します。 – jonrsharpe

答えて

0

を返します。値を保存することを知っている152?この後

:これはあなたの細胞の正確な値が表示されます

print(type(comma_to_dot), repr(comma_to_dot)) 

comma_to_dot = row_values3[36] # cell with 152,203 

はこれを挿入します。ドットを小数点として解釈する。ロケールは無関係です。印刷されたものを表示(コピー/ペースト)してください。 あなたが望むものでない場合は、あなたが何をしたいか教えてください。

関連する問題