在Python XLRD中用点替换逗号
我正在使用在Python XLRD中用点替换逗号,python,xlrd,Python,Xlrd,我正在使用xlrd将.xlsx文件解析为JSON格式。我遇到了逗号和点的问题 我在Excel文件中输入的值:152203。我想将其解析为一个值:152.203,但还没有运气。它将值保存为152,这是一个问题。在荷兰语中,逗号常被用作点,因此必须抓住这个错误 部分代码示例: key3 = OrderedDict() row_values3 = sheet.col_values(1, 0, 60) comma_to_dot = row_values3[36] # cell with 152,2
xlrd
将.xlsx
文件解析为JSON格式。我遇到了逗号和点的问题
我在Excel文件中输入的值:152203
。我想将其解析为一个值: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”对象没有属性“replace”
我也尝试过:
key3['Value'] = int(row_values3[36])
但这也会返回
152
如何知道它将值保存为152
在此之后:
comma_to_dot = row_values3[36] # cell with 152,203
插入以下内容:
print(type(comma_to_dot), repr(comma_to_dot))
这将显示单元格中的确切值。将点解释为小数点。地点无关。请出示(复印/粘贴)打印的内容。
如果这不是您想要的,请告诉我们您想要什么。JSON要求浮点数为
x.y
,并且不允许在数字中使用千个分隔符。如何显示这是一个区域设置问题,应该由用户看到数据的任何UI来处理。我明白了,但我只想在一个值中将逗号改为点。这些只能是一个或两个逗号。似乎您需要在Excel中设置区域设置,这与XLRD无关。正如错误消息告诉您的,您得到的是一个浮点数,而不是一个字符串。我无法在Excel中对此进行更改,因为此脚本处理用户上载的Excel文件。@JonTaylor注意到存储的数字显然是152.203
(其中点是小数点,而不是千位分隔符),不是152203
,因为Excel工作表使用的区域设置是,
是小数点。