Python 将多个对象写入CSV
我从我的类中创建了多个对象,并希望将它们写入CSV文件中的一行 这是我的代码外观的一个示例Python 将多个对象写入CSV,python,csv,Python,Csv,我从我的类中创建了多个对象,并希望将它们写入CSV文件中的一行 这是我的代码外观的一个示例 p1 = Person("name1", "first", 2.5, 0.5, 3.6) p2 = Person("name2", "second", 0.6, 5, 3) p3 = Person("name3", "third", 1, 0.5, 3.4) p4 = Person("name4", "fourth", 1.4, 0.3, 3.2) 因此,我希望一个人的所有信息都存储在CSV文件中,如下
p1 = Person("name1", "first", 2.5, 0.5, 3.6)
p2 = Person("name2", "second", 0.6, 5, 3)
p3 = Person("name3", "third", 1, 0.5, 3.4)
p4 = Person("name4", "fourth", 1.4, 0.3, 3.2)
因此,我希望一个人的所有信息都存储在CSV文件中,如下所示:
name1 first 2.5 0.5 3.6
name2 second 0.6 5 3
等等
我知道通常如何使用csv导入来编写csv,只是不需要这样的数据
人员类别:
class Person:
def __init__(self, name, number, score1, score2, score3):
self.name = name
self.number = number
self.score1 = score1
self.score2 = score2
self.score3 = score3
您可以使用
vars
以dict
的形式获取实例的字段:
>>> Person("name1", "first", 2.5, 0.5, 3.6)
{'name': 'name1', 'first_name': 'first', 'a': 2.5, 'b': 0.5, 'c': 3.6}
这允许使用以可预测的方式写入列:
import csv
with open('names.csv', 'w', newline='') as csvfile:
fieldnames = ['name', 'first_name', 'a', 'b', 'c'] # adjust this to your class' fields
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow(vars(p1))
writer.writerow(vars(p2))
writer.writerow(vars(p3))
writer.writerow(vars(p4))
Person()类的结构是什么?您需要提取类的相关属性,然后将每个属性写入CSV。您可以通过调用来获取实例属性的dict.\uuu dict\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!这就是我要找的。是否也可以只选择对象的某些元素,比如名称和一个分数,然后将其放入csv?Jimmy只需将它们从
字段名中排除,然后将extraction='ignore'
传递到csv.DictWriter
。有关详细信息,请参阅DictWriter
的文档。