来自Poblate csv的Python对象

2024-10-01 22:30:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件paises.csv如下所示:

Chile;17000000;0.72;FALSE;0
Hanslandia;2000000;0.2;FALSE;91
Bastiland;4000000;0;TRUE;0

第一列是country名称,下面是它的一些特性,例如它的填充。因此,我创建了一个country类,并尝试创建国家,并用csv文件中的特性填充它:

^{pr2}$

代码运行。然而,它甚至没有创造国家。当我试图看到row时,我得到的是:

AttributeError("Can't get attribute 'country' on ",)

Tags: 文件csv名称falsetrue特性国家country
1条回答
网友
1楼 · 发布于 2024-10-01 22:30:00

我想你需要一个容器来存放你正在创建的国家。我还将考虑将类的名称大写:

import csv

class Country:
    def __init__(self,inhabitants,tolerance,underground,infected_perc):
        self.inhabitants = inhabitants
        self.tolerance = tolerance
        self.underground = underground
        self.infected_perc = infected_perc

countries = {}
with open('paises.csv', 'r') as f:
   reader = csv.reader(f, delimiter = ";")
   for row in reader:
       countries[row[0]] = Country(row[1], row[2], row[3], row[4])

您需要的国家/地区存储在字典countries中,您可以使用其名称作为键来访问它们。例如,要访问Chile,可以使用countries['Chile']。在

更新:

如果要使用列表而不是词典,则应在类中添加一个字段以存储国家名称:

^{pr2}$

如果使用列表作为容器,可以用countries.append(Country(row[0], row[1], row[2], row[3], row[4]))替换countries.append(Country(*row))

相关问题 更多 >

    热门问题