Python 如果字典值不存在,则跳过JSON解析循环

Python 如果字典值不存在,则跳过JSON解析循环,python,json,parsing,Python,Json,Parsing,我正在使用OpenStreetMap API使用以下代码提取特定区域的一些数据: import requests import json overpass_url = "http://overpass-api.de/api/interpreter" overpass_query = """ [out:json]; area["ISO3166-1"="DE"][admin_level=2]; (node["amenity"="place_of_worship"](area); way["ame

我正在使用OpenStreetMap API使用以下代码提取特定区域的一些数据:

import requests
import json

overpass_url = "http://overpass-api.de/api/interpreter"
overpass_query = """
[out:json];
area["ISO3166-1"="DE"][admin_level=2];
(node["amenity"="place_of_worship"](area);
 way["amenity"="place_of_worship"](area);
 rel["amenity"="place_of_worship"](area);
);
out center;
"""
response = requests.get(overpass_url, 
                        params={'data': overpass_query})
data = response.json()
然后,我尝试使用以下代码打印出上面的所有“名称”:

for tags in data['elements']:
    print(tags['tags']['name'])
这适用于前12个左右的结果,但遇到“标记”字典中没有“名称”值的结果时会遇到问题:

Epiphanias Kirche
Kirche St. Bilhildis
Kleine Kreuzkirche
Marienkapelle
Kath. Kirche Heilige Familie
St. Cyriakus
Friedhofskapelle
Ev. Hoffnungsgemeinde / Philippuszentrum
Petrikirche
Sankt Paulus
Kapelle Höver
Pfarrkirche St. Laurentius

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-81-5758361aa6f2> in <module>()
      1 for tags in data['elements']:
----> 2     print(tags['tags']['name'])
      3 
      4 #error occurs because not all have name tags

KeyError: 'name'
Epiphanias Kirche
Kirche St.Bilhildis
克莱恩·克鲁兹基切
圣母小堂
凯丝。克什海利格家族
圣西里亚库斯
弗里德霍夫斯卡佩勒
电动汽车。霍夫农格梅因/菲利普斯岑特鲁姆
彼得利教堂
保卢斯圣殿酒店
卡佩尔·霍弗
普法尔基什圣劳伦斯酒店
---------------------------------------------------------------------------
KeyError回溯(最近一次呼叫最后一次)
在()
1对于数据['elements']中的标记:
---->2打印(标签['tags']['name'])
3.
4#发生错误,因为并非所有文件都有名称标签
KeyError:“名称”

有没有一种方法可以跳过任何缺少的“name”值并继续解析?

尝试使用
dict.get

Ex:

for tags in data['elements']:
    print(tags['tags'].get('name'))
也可以设置默认值。例如:
print(标签['tags'].get('name','EMPTY'))