python - 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})
解决方案
您可以使用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'
推荐阅读
- c# - 如果有另一个具有特定配置文件的 chrome 实例,C# ChromeDriver 构造函数会挂起
- wordpress - 缩短网址会在 url 末尾添加一些字符,这会导致 wordpress 网站出现 404 错误
- java - AnalysisException callUDF() inside withColumn()
- sql-server - 将访问代码更改为 sql server
- docx4j - 如何在 docx4j(Word docx) 中添加数字签名和验证?
- amazon-web-services - Azure 中是否有与这些 AWS 服务等效的服务?
- firebase - 如何每天自动备份 Firestore 数据库
- r - 'expss' R 包是否可以等同于 SAS PROC TABULATE?
- ignite - 点燃与操作系统系统时钟时间不同的日志记录时间戳(点燃使用错误的时区?)
- android - 列表视图未显示正确的模型类项目