将数据从 csv 读取到类对象列表中 - Python
Posted
技术标签:
【中文标题】将数据从 csv 读取到类对象列表中 - Python【英文标题】:Read data from csv into list of class objects - Python 【发布时间】:2018-12-04 01:46:49 【问题描述】:我无法弄清楚这一点。基本上我有一个 .csv 文件,其中包含 7 名员工的姓名、员工 ID、部门编号和职位。我的目标是让def readFile(employees)
接受一个空列表(称为员工),打开文件进行阅读,然后将文件中的所有员工加载到员工对象(员工)列表中。我已经将我的课程构建为:
class Employee:
def __init__(self, fname, lname, eid, dept, title):
self.__firstName = fname
self.__lastName = lname
self.__employeeID = int(eid)
self.__department = int(dept)
self.__title = title
我还有其他几个类方法,但基本上我不太明白如何将文件正确加载到对象列表中。
【问题讨论】:
【参考方案1】:我能够弄清楚这一点。我打开文件,然后从中读取一行,剥离 \n 并拆分我的数据。我使用了一个 while 循环来继续阅读行,只要它不是空行,并将其附加到我的空列表中。我还必须拆分第一个索引项,因为它是同一个字符串中的名字和姓氏,我需要将它们分开。
def readFile(employees):
with open("employees.csv", "r") as f:
line = f.readline().strip().split(",")
while line != ['']:
line = line[0].split(" ") + line[1:]
employees.append(Employee(line[0], line[1], line[2], line[3], line[4]))
line = f.readline().strip().split(",")
它很可能可以写得更好,更 Pythonic,但它可以满足我的需要。
【讨论】:
【参考方案2】:为什么不使用熊猫。因此,您定义了一个员工 pandas 对象,并使用它们的索引来选择每个员工,并使用每列的名称来选择特定的员工属性。
【讨论】:
以上是关于将数据从 csv 读取到类对象列表中 - Python的主要内容,如果未能解决你的问题,请参考以下文章
将列表写入 pandas 数据帧到 csv,从 csv 读取数据帧并再次转换为列表而无需字符串