[英]How to load a file that I'll use as class attributes where the order of these attributes can change
我有一个要加载的.csv文件,它包含与足球运动员有关的信息:前三行的示例如下:
name,position,shooting,dribbling
Cristiano Ronaldo,forward,95,88
Lionel Messi,winger,85,92
Eden Hazard,winger,92,95
我还有班级球员:
class Player:
def __init__(self, name, position, shooting, dribbling):
self.name = name
self.position = position
self.dribbling = dribbling
self.shooting = shooting
我需要从.csv文件加载数据,然后将其与Player类一起使用。 我的问题是有时可以更改数据的顺序,例如,文件的前两行可能看起来像这样,而不是上面的样子:
position,shooting,name,dribbling
forward,95,Cristiano Ronaldo,88
...
每次正确加载数据的有效方法是什么?
正如h4z3在评论中建议的那样,在这些情况下,dict开箱非常好。 您可以将其与csv
模块结合使用。
首先,我们将其放入2个文件meh.csv
和meh2.csv
:
import csv
list_of_players = []
with open('meh.csv', 'r') as file:
reader = csv.DictReader(file)
for line in reader:
list_of_players += [Player(**line)]
with open('meh2.csv', 'r') as file:
reader = csv.DictReader(file)
for line in reader:
list_of_players += [Player(**line)]
结果:
list_of_players[0].name
'Cristiano Ronaldo'
list_of_players[-1].name
'Cristiano Ronaldo'
list_of_players[-2].name
'Eden Hazard'
我使用了一个列表来存储对象,但是您显然可以随意包装它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.