在Python中用逗号替换逗号XLRD

问题描述:

我正在使用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',并且不允许有数千个分隔符。你如何*显示*这是一个本地化问题,应该由你的用户通过哪些用户界面来处理。 – jonrsharpe

+0

我明白了,但我只是想在一个值中将逗号更改为点。这些只能是一个或两个逗号。 –

+0

您似乎需要在Excel中设置语言环境,这与XLRD无关。正如错误消息告诉你的,你得到的是一个浮点*数字*返回,而不是一个字符串。 – jonrsharpe

你如何知道它将价值保存为152?

在此之后:

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

插入这样的:

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

这将显示在单元格中的精确值。将点解释为小数点。区域设置无关紧要。请显示(复制/粘贴)打印的内容。 如果这不是你想要的,请告诉我们你想要什么。