如何将CSV数据存储到变量中?

2024-05-17 16:01:33 发布

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

我正在尝试将CSV文件中的数据存储在python变量中:

我有一个CSV:

CountryName,  ChargeMinutes
Cape Verde ,    0.00
Algeria ,       10.80
St. Lucia ,     0.00
Cameroon ,      48.75
United States , 457,929.00

我需要为每个国家创建一个变量,并使用相同的名称分配它,并添加实际收费分钟数,例如:

cape_verde = 0
algeria = 10
st_lucia = 0
cameroon = 48 
etc...

我已经有了CSV的输出,但是我不知道如何将数据输出存储在变量中

import csv

with open("datatmx_headers.csv", "r") as f_input:
    csv_input = csv.DictReader(f_input)

    for row in csv_input:
        country = row['CountryName']
        minutes = row['ChargeMinutes']
        print(country, minutes)

Tags: 文件csv数据inputcountryrowstcape
2条回答

我建议您创建一个字典,并将其用作变量列表。通过这种方式,您可以在一个位置存储和跟踪所有变量信息

var = {}
with open("datatmx_headers.csv", "r") as f_input:
    csv_input = csv.DictReader(f_input)

    for row in csv_input:
        var[row['CountryName']] = row['ChargeMinutes']

enter image description here

我希望这会有帮助

因此,在达到拟定目标之前,您需要做一些事情。 因为你有像“佛得角”、“圣卢西亚”、“阿尔及利亚”这样的特殊情况

要处理字符串末尾有空格的“佛得角”和“阿尔及利亚”,应添加:

for row in csv_input:
    country = row['CountryName'.strip()]
    minutes = row['ChargeMinutes']
    print(country, minutes)

现在,您将找不到结尾带有空格的国家名称。然后我们应该处理包含“”的名称

for row in csv_input:
    country = row['CountryName'.strip().replace(".","")]
    minutes = row['ChargeMinutes']
    print(country, minutes)

最后,我们应该删除“佛得角”等两个单词名称之间的空格,并将其替换为“\”

for row in csv_input:
    country = row['CountryName'.strip().replace(".","").replace(" ","_")]
    minutes = row['ChargeMinutes']
    print(country, minutes)

我建议你不要为每个国家设置一个变量,而是将所有变量都添加到字典中,将它们放在一个变量中,以便轻松访问数据

my_dict = {}
for row in csv_input:
    country = row['CountryName'.strip().replace(".","").replace(" ","_")]
    minutes = row['ChargeMinutes']
    my_dict[country] = minutes

在此之后,您应该能够访问如下数据:

print(my_dict.algeria) #prints 10.80
print(my_dict.Cape_Verde) #prints 0.0

相关问题 更多 >