当我确认我试图转换为 float 的变量确实是一个字符串时,我感到非常困惑(我将在此处显示我的日志):
>>> 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)
