我是 Python 的新手,正在查找我想做的事情的例子。我不确定这个循环有什么问题,我想做的是逐行读取一个 csv 文件并读取每一行:
- 以逗号分隔
- 删除第一个条目(这是一个名称)并将其存储为
name
- 将所有其他条目转换为 float
- 在我的
Community
类中存储name
和float 条目
这就是我目前正在尝试的:
class Community:
num = 0
def __init__(self, inName, inVertices):
self.name = inName
self.vertices = inVertices
Community.num += 1
allCommunities = []
f = open("communityAreas.csv")
for i, line in enumerate(f):
entries = line.split(',')
name = entries.pop(0)
for j, vertex in entries: entries[j] = float(vertex)
print name+", "+entries[0]+", "+str(type(entries[0]))
allCommunities.append(Community(name, entries))
f.close()
我得到的错误是:
>>>>> PYTHON ERROR!!! Traceback (most recent call last):
File "alexChicago.py", line 86, in <module>
for j, vertex in entries: entries[j] = float(vertex)
ValueError: too many values to unpack
可能值得指出的是,它在 omegalib 中运行,这是一个以 C 语言运行并解释 Python 的可视化集群库。
最佳答案
我想你忘记了第 86 行的 enumerate()
函数;应该是
for j, vertex in enumerate(entries): entries[j] = float(vertex)
关于Python,将列表的所有条目从字符串转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18840827/