当我确认要转换为浮点数的变量确实是一个字符串时,我感到非常困惑(我将在此处显示我的日志):
>>> print ratingXf
'1'
>>> print type(ratingXf)
<type 'str'>
>>> ratingX = float(ratingXf)
ValueError: could not convert string to float: '1'
我的计算如下:
rateX, rateY= v.split(',')
ratingXf = (rateX[1:])
ratingX = float(ratingXf)
当我尝试将字符串转换为整数时,出现以下错误:
ValueError: invalid literal for int() with base 10: "'1'"
似乎这应该很简单。但是我不明白为什么会出现此错误。谁能发现问题?
谢谢!
最佳答案
您有一个嵌套字符串,即ratingX = "'1'"
。
对于values = ["('1', '1')", "('1', '1')"]
的起点
我建议先将其设置为您想要的格式:
clean_cell = lambda x: map(float, re.findall(r'\'([0-9]+)\'', x))
values_cleaned = map(clean_cell, values)
# Then iterate
for rating in values_cleaned:
if (len(rating) == 2):
ratingX, ratingY = rating[0], rating[1] # This step is probably not necessary :P
deal_with_ratings(ratingX, ratingY)