首页 > 解决方案 > Geopy 没有所有相同的地址键

问题描述

如何检测location.raw["address"]字典上缺少的一些键。这是因为,某些地址没有['city'] or ['road']密钥 :(

我很难将数据保存在数据框 Python 中。

这是我的代码:

from geopy.geocoders import Nominatim

r=[]
h=[] #empty list
c=[]

for i in df['coordinates']:
    loc=geolocator.reverse("%s"%i,timeout=120)
    print(loc)


    if loc.raw["address"]["road"] == None: #i tried use this way, not works
        r.append(" ")
        print("masuk 1")

    else: 
        road=loc.raw["address"]["road"]
        r.append(road)
        print("masuk 2")


    ham=loc.raw["address"]
    name=loc.raw["display_name"]


    h.append(ham)
    c.append(name)

df = pd.DataFrame({'text':text,'city':c,'neighbourhood':h})

标签: pythongeopy

解决方案


您可以使用in关键字来检查键是否出现在dict

a = {1:2, 'x': [3,4]}
print(1 in a) # True
print(2 in a) # False
print('x' in a) # True

此外,dict对象有get方法,如果 key 不存在,它会返回一些值:

a.get(1) # 2
a.get(2) # None -- default value
a.get(2, 'n/a') # 'n/a'

推荐阅读