【发布时间】:2021-07-30 10:50:51
【问题描述】:
我正在尝试构建一个函数,它获取一个 csv 文件作为参数并返回一个字典,而不使用 pandas 或任何其他类似的工具。 我想要做的是获取一个字典,其中键是国家名称,值是他们在奥运会上获得的奖牌数量(如果他们没有获得任何奖牌,则应该返回 0)。 这就是我试图做的(不知道如何把它放在一个函数中)。
def summer_olympic_stats(file):
summer_olympic_medals = {}
with open("summer_olympics_countries.csv", "r+") as my_csv:
for line in my_csv:
line = line.rstrip("\n")
medals = line.startswith("Gold") or line.startswith("Silver") or line.startswith("Bronze") or line.startswith("Total")
country = row[1]
country,medals = line.split("\t")
summer_olympic_medals[country] = int(medals)
print(summer_olympic_stats(open("summer_olympics_countries.csv")))
我得到的错误代码是:
PermissionError: [Errno 13] Permission denied: 'summer_olympics_countries.csv'
我想要得到的结果示例:
{'ALG': {'Gold': 5, 'Silver': 4, 'Bronze': 8, 'Total': 17}}
我知道我的 func 甚至没有接近解决方案,但我真的不知道如何处理它,这是我使用 python 的第三周,所以这是我在这个世界上的第一步。 感谢所有帮助,谢谢!
【问题讨论】:
-
您的意思是:
open("summer_olympics_countries.csv", "r")? -
解决了这个错误,谢谢!我再试一次
-
以“r+”模式打开应该也可以,但是由于该模式可能涉及文件写入,因此您必须关闭要打开的文件,否则会出现权限被拒绝错误即运行脚本时不能在excel中打开数据
-
您可以将示例数据添加为文本或最终添加为文件链接 - 然后我们可以在数据上测试代码。
标签: python python-3.x function csv dictionary