我正在努力理解类/对象,并对它们使用csv。
我有一个26行的CSV,1行是标题,另一行包含信息行。
id,food,food_print,cal1,cal2,expi1999,expi2000,expi2001
1,bun,bun_bun,45.3434,199.32323,23.3333,45.4444,33.33333
2,burger,burger_bun,45.342343,200.34243,34.3333,0,9
3,pickle,pickle_seed,67.345454,34.3434,34,56,33
4,chicken,chicken_egg,44.34343,43.343343,43,434,34343
我有我的类如下:
class City(object):
def __init__(self, food = 'n/a', foodprint = 'n/a', cal1 = -999, cal2 = -999,
expi1999 = -999, expi2000 = -999, expi2001 = -999)
self.food = food
self.foodprint = foodprint
self.cal1 = cal1
self.cal2 = cal2
self.expi1999 = expi1999
self.expi2000 = expi2000
self.expi2001 = expi2001
meals = []
foodfile = open('Food.csv', 'rt')
headers = foodfile.readline().strip().split(',')
headers = headers.split(',')
for line in foodfile:
foodfields = foodfile.readline().strip().split(',')
如何将food csv中的行写入类中要引用的对象?
3条答案
按热度按时间flvlnr441#
假设每行中的所有列都已填充:尝试:
6pp0gazn2#
false音调以避免动态类。
因为您的代码在将来的更改中变得不可预测。请改用数据类。
此外,此行为还允许您在与任何可调用对象进行数据交换期间将此“数据模型”作为注解引用。
但如果要现在怎么做-
setattr
函数存在于全局命名空间中。m4pnthwp3#
我会这样做:
rows
的外观如下所示:备注
repr
函数是显示类对象的内容,可以忽略它csv
模块来简化CSV数据的解析