python报错:'float' object is not iterable
本帖最后由 shiyanwei 于 2022-9-2 17:12 编辑报这个错误i:TypeError: 'float' object is not iterable
请大神给指导一下,不太理解为什么会报这个错。
```python
from pyecharts.charts import Bar
with open(r'D:\Downloads\sxgangwei.txt','r',encoding='utf-8') as qq:
neirong = qq.readlines()
# a = print(neirong)
dictCity = {}
for i in neirong:
if i == '薪资面议' :
continue
# print(i)
city = i.split(",")
salary = i.split(",")
daily = salary.split("/")
# print(city,daily)
avg1 = daily.split("-")
avg2 = daily.split("-")
avg = (int(avg1)+int(avg2))/2
# print(avg)
if city not in dictCity.keys():
dictCity = []
dictCity.append(avg)
print(dictCity)
for key,value in dictCity.items():
print(key)
print(value)
avg_value = sum(value)//len(value)
dictCity= avg_value
print(dictCity)
bar = Bar()
bar.add_xaxis(list(dictCity.keys()))
bar.add_yaxis("各城市薪资",list(dictCity.values()))
bar.render("salary.html")
```
报错截图发下?不知道是哪一行出的问题啊 冬酒暖阳 发表于 2022-9-2 17:10
报错截图发下?不知道是哪一行出的问题啊
好的,已上传,是25行代码造成的 sum(value)先赋值给一个变量 len(s)
返回对象的长度(元素个数)。实参可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)。 sum()方法接收的参数是需要可迭代的,现在报错是说float不可迭代,证明传入的是一个float。 第 25 行 value 应该被赋值为一个浮点数了,你都 print 出来了应该看得见 charleskao 发表于 2022-9-2 17:33
sum(value)先赋值给一个变量
那么该如何修改呢? 第25行前边都打印出value的值了,看看是不是可迭代对象 sum()的参数要是可迭代对象, 很明显你某个 value 值是 float类型 , 不可迭代就报错了.
你改成可迭代的对象不就好了
页:
[1]
2