【发布时间】:2017-07-22 11:17:44
【问题描述】:
我有一个看起来像这样的 CSV 文件: 它显示了 4 个国家从 1980 年到 2014 年的用电量。我正在尝试创建一个嵌套字典,例如 consumption['United States'][1980] 将返回正确的值。我有一个包含整数年列表的数组,我正在尝试创建这样的字典:
file = open('power dataset.csv', 'r')
years = list(range(1980, 2015))
consumption = {}
generation = {}
generation = False
for line in file:
if("Nuclear" in line):
break
split = line.split(",")
if split[0] == "Generation":
generation = True
if "Egypt" == split[0] or split[0] == "Germany" or split[0] == "Netherlands" or split[0] == "United States":
values = split[2:]
if not generation:
i = 0
for year in years:
country = split[0]
consumption[country] = {year: values[i]}
i = i+1
其中 values 是一个包含相应年份值的数组。我遇到的问题是字典最终只包含一年和一个值(这是最后一个值)。因此,如果我尝试打印 consumption['United States'][1980] 之类的内容,则会出现错误,因为字典中没有 1980 的条目,只有 2014。
我觉得我错过了一些相当简单的东西,但我不能完全理解它。
Here 是整个 CSV 文件。
【问题讨论】:
-
没有看到您如何声明
split、country和consumption,我们无能为力 -
发布了更多代码。
-
您不使用 Pandas 有什么特别的原因吗?那会更合适
-
@tobias_k 哦,我的错,我尝试更改该行进行测试。这是没有错误的。
-
@Swailem95 这个版本还有只显示一个字典的问题吗?
标签: python csv dictionary