TypeError,从字典计算变量时

时间:2013-08-08 08:20:09

标签: python types dictionary

什么类型是val_dict.get(filename)[1]?我不断收到这个Typeerror,告诉我它是一个NoneType:

TypeError: unsupported operand type(s) for *: 'float' and 'NoneType'

当我尝试使用此行运行脚本时:

water = (float(x1[count]) * (val_dict.get(filename[1])) 

我一直在收到错误。我曾尝试拨打floatintstr,但显然没有帮助。

我编写了一个脚本,用于从Excel电子表格中导入某些值并进行缩放。之后我的脚本应该将这些值提取到一个新的excel电子表格中,而我认为最简单的方法是将所有数据存储在如下字典中:

        val_dict[filename] = [model, lenghtvalue, dispvalue, Froudemax, Froudemin]

return val_dict

val_dict = locate_vals()
print val_dict
#output:
{'C:/eclipse/TST-folder\\Test spreadsheet model 151B WL3.xls': [u'M151B', 14.89128, 316.29, 1.0, 0.4041900066850382], 'C:/eclipse/TST-folder\\FolderA\\Test spreadsheet model 151 WL1 Lastet.xls': [u'M151', 14.672460000000001, 316.28887, 1.0, 0.4041900066850382]}

如果有趣的话,x1-list的输出如下所示:

[0.35714285714285715, 0.35714285714285715] [1.5845602477694463e-07, 1.5845602477694463e-07]

2 个答案:

答案 0 :(得分:1)

val_dict[filename]是一个可以编入索引的数组,但filename不是。

P.S。 我认为以下图片可能有所帮助(来自博客文章29 common beginner Python errors on one page)。

29 common beginner Python errors on one page

答案 1 :(得分:0)

问题是这一行:

water = (float(x1[count]) * (val_dict.get(filename[1]))

应该是:

water = (float(x1[count]) * (val_dict.get(filename)[1]))