我目前正在使用python中的Visual跟踪路由程序(在Ubuntu上)。我正在使用pygeoip来获取坐标(以及其他信息)。我将每个IP的数据存储在一个列表中(listcoor)。我遇到的问题是,一旦将特定的字典项放入listcoor
,就会访问它def vargeolocating(matchob): # matchob is a list of IPs
print "Geolocating IP addresses"
gi = GeoIP.open("/usr/share/GeoIP/GeoLiteCity.dat",GeoIP.GEOIP_STANDARD)
i = 0
listcoor = []
while ( i < len(matchob)):
holder = gi.record_by_addr(matchob[i])
if holder is None:# for local addresses
print "None"
else:
listcoor.append(holder)
i = i + 1
print holder['longitude'] # Prints out the last longitude
print listcoor[12] # Prints all information about the last IP (this longitude matchs the above longitude
print listcoor[12['longitude']] # Should print just the longitude, matching the two longitudes above
最后一个打印显示错误“TypeError:'int'对象没有属性' getitem '”
答案 0 :(得分:3)
您正在尝试索引12
,但无法将整数编入索引;移动索引语法以索引12
上listcoor
索引的结果:
listcoor[12]['longitude']
这是怎么回事:
>>> 12['longitude']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is unsubscriptable