【发布时间】:2012-11-08 02:12:11
【问题描述】:
def citypop():
import csv
F = open("Top5000Population.txt")
csvF = csv.reader(F)
D = {}
with csvF for row in csvF:
city,state,population = row[0],row[1],row[2]
population = population.replace(',','')
population = int(population)
city = city.upper()[:12]
D[(city, state)] = population
return D
函数citypop() 返回一个以(city,state) 为键和该城市(在该州)的人口为值的字典。
我不断收到语法错误.. 我没有正确理解 csv 模块吗?
编辑:感谢大家的帮助....这应该可以工作,但现在我突然收到错误
for city, state, population in reader(F): File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors[0]) UnicodeDecodeError: 'ascii' codec can't decode byte 0xa4 in position 7062: ordinal not in range(128)
当我运行测试用例时......有什么建议吗?
【问题讨论】:
-
解释器说语法错误在哪里?
-
它突出显示第 6 行中的“for”一词
-
那一行不需要
with csvF。它应该只是for row in csvF:。 -
你想要的是
with open("Top5000Population.txt") as F:。