所以,这是我的密码。在
def classMaker(csv):
csv = csv.split("/n")
firstLine = csv[0]
csv = csv[1:]
class newClass():
def __init__(self, line):
self.vars = firstLine
for i in range(len(line)):
self[firstLine[i]] = line[i]
return [newClass(line) for line in csv]
问题是self[firstLine[i]]=line[i]中的AttributeError。上面写着
AttributeError: newClass instance has no attribute '__setitem__'
我不知道它为什么会导致这个错误。我的目标是接收从Excel导出的csv文件,并从字段名自动生成对象名。在
提前谢谢你。在
如果我能正确推断您的意图,您需要替换这行:
有了这个:
^{pr2}$这将为您的
newClass
对象创建一个以数据中的列命名的属性。在例如:
以及
将产生:
另外,假设您将添加文件I/O、解析CSV文件和其他缺少的元素。在
p.p.s:您可以完全避免循环计数器
i
:p.p.s:这是一个完整的工作样本:
如果使用^{} ,则可以同时避免
newClass
:这假设CSV头将是有效的Python标识符(也就是说,如果您有像“somevalue”这样的实体,那么如果您不处理
firstLine
,那么这将不起作用。在这将允许您执行以下操作:
^{pr2}$另外,您应该查看^{} module ,以简化CSV处理。在
相关问题 更多 >
编程相关推荐