编写python脚本统计每个国家的机场数量,但出现以下错误';字符串索引必须是整数,而不是str';

编写python脚本统计每个国家的机场数量,但出现以下错误';字符串索引必须是整数,而不是str';,python,csv,Python,Csv,我是python编程新手,我试图计算每个国家的机场数量。我遇到一个错误,有人能帮我解决以下问题吗 import csv f = open("airports.dat") for lists in csv.reader(f): airports = lists[1] countries = lists[3] for air in airports: if air not in airports: airports[air]=1 else:

我是python编程新手,我试图计算每个国家的机场数量。我遇到一个错误,有人能帮我解决以下问题吗

import csv
f = open("airports.dat")
for lists in csv.reader(f):
    airports = lists[1]
    countries = lists[3]

for air in airports:
    if air not in airports:
        airports[air]=1
    else:
        airports[air]+=1
print(airports)
获取以下错误-

TypeError                                 Traceback (most recent call last)
<ipython-input-75-df427e17a15c> in <module>()
      6 
      7 for air in airports:
----> 8     if air not in airports(airports):
      9         airports[air]=1
      10     else:

TypeError: 'str' object is not callable
TypeError回溯(最近一次调用)
在()
6.
7对于机场的空运:
---->8如果航空公司不在机场(机场):
9个机场[航空]=1
10其他:
TypeError:“str”对象不可调用
从for
csv.reader

返回一个读卡器对象,该对象将在给定csvfile中的行上进行迭代

从csv文件读取的每一行都作为字符串列表返回

这意味着下面代码中的
列表
实际上是指字符串列表(不是复数!):

for lists in csv.reader(f):
这意味着您正在为机场分配一个字符串:

airports = lists[1]
这又意味着这段代码将迭代字符串中的每个字符:

for air in airports:
由于字符串是一个(字符)序列,当您试图使用非整数下标值(具体地说,是单个字符)访问该序列的元素时,会出现
TypeError


您的代码和错误不同步您确定
airports
是字典而不是列表吗?显示文件的前几行。这样可以更快地解决问题。在什么情况下,您希望
air not in airport
为真?实际上,您正在对机场中的空运进行迭代,根据定义,
air
将始终位于机场中。
airports[air]+=1