use*_*067 2 python csv dictionary variable-assignment
我是Python和编程的新手,我目前正在编写一个脚本,最终将根据新教率在美国地图中为县设置颜色.我遇到了让我傻眼的问题,我似乎无法找到任何答案.
此代码读入csv文件,该文件具有以下格式:
2060;6,018888889
2068;169,77
etc...
Run Code Online (Sandbox Code Playgroud)
第一项是fips代码,第二项是费率.我想将这些分配给一个字典,我以后可以用它来在县地图中着色.以下代码旨在实现:
#populate dictionary with fips and rate from csv file
evanrate = {}
with open(r'C:\Users\Jeroen\documents\hacker1\evanrate.csv') as evanrate:
parsereader = csv.reader(evanrate, delimiter = ';')
for row in parsereader:
fips = row[0]
rate = float(row[1].replace(',', '.'))
evanrate[fips] = rate
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用代码"evanrate [fips] = rate"填写字典时,我收到错误:
Traceback (most recent call last):
File "C:\Users\Jeroen\Documents\hacker1\evanrate.py", line 16, in <module>
evanrate['fips'] = rate
TypeError: '_io.TextIOWrapper' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)
我使用的是Python 3.3和Windows 7.
# this is a dict
# ?
evanrate = {} # this isn't --.
# ? |
with open(r'C:\Users\Jeroen\documents\hacker1\evanrate.csv') as evanrate: # |
parsereader = csv.reader(evanrate, delimiter = ';') # |
for row in parsereader: # |
fips = row[0] # |
rate = float(row[1].replace(',', '.')) # /
# ?---------------------------------------------------------------/
evanrate[fips] = rate
Run Code Online (Sandbox Code Playgroud)
重命名您的词典或文件.