我举一个例子:
class Automobile: def __init__(self, name, lastname, country, year, model, price):
我想读取csv文件,它看起来像表,列与类Automobile的属性相同。我想从csv文件中创建一个Automobile类的对象列表。有人能帮忙吗?
llycmphe1#
如果您的CSV文件有一个标题行,其标题与参数名称匹配,则可以使用**和csv.DictReader免费获得此功能。test.csv
**
csv.DictReader
a,b 1,2 3,4
import csv class A: def __init__(self, a, b): self.a = a self.b = b a_objects = [] with open('test.csv') as f: reader = csv.DictReader(f) for line in reader: a_objects.append(A(**line))
如果CSV文件没有显式的头文件,那么可以将它们临时传递给DictReader:
DictReader
reader = csv.DictReader(f, fieldnames=['a', 'b'])
请记住,一旦代码或CSV文件发生更改,这将失败,因此您将需要一些错误处理(或至少使用**kwrags保护类的__init__不受未知列的影响)。
**kwrags
__init__
1条答案
按热度按时间llycmphe1#
如果您的CSV文件有一个标题行,其标题与参数名称匹配,则可以使用
**
和csv.DictReader
免费获得此功能。test.csv
如果CSV文件没有显式的头文件,那么可以将它们临时传递给
DictReader
:请记住,一旦代码或CSV文件发生更改,这将失败,因此您将需要一些错误处理(或至少使用
**kwrags
保护类的__init__
不受未知列的影响)。