如何将pandas从csv文件中读取的对象分配给某个类?

rvpgvaaj  于 2023-05-15  发布在  其他
关注(0)|答案(1)|浏览(92)

我举一个例子:

class Automobile:
  def __init__(self, name, lastname, country, year, model, price):

我想读取csv文件,它看起来像表,列与类Automobile的属性相同。我想从csv文件中创建一个Automobile类的对象列表。有人能帮忙吗?

llycmphe

llycmphe1#

如果您的CSV文件有一个标题行,其标题与参数名称匹配,则可以使用**csv.DictReader免费获得此功能。
test.csv

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

reader = csv.DictReader(f, fieldnames=['a', 'b'])

请记住,一旦代码或CSV文件发生更改,这将失败,因此您将需要一些错误处理(或至少使用**kwrags保护类的__init__不受未知列的影响)。

相关问题