当我确认要转换为浮点数的变量确实是一个字符串时,我感到非常困惑(我将在此处显示我的日志):

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

09-12 21:37