title: Geopy reverse returns keyerrors for 'city', 'district' and 'borough' despite being in JSON response object
body: <p>I'm trying to run a very simple geopy reverse script that takes a lat-long coordinate and returns specifically the country, state and city. All three of these are easily pulled from the JSON response object. However, when I try to extract the 'city' feature, I get a KeyError. If I double check to see if 'city' is in the response object, it definitely is (see below), so what exactly is going on? I can extract country and state without issue, why not the city? I've also noticed this happening for district and borough.</p>
  <p>This is my code:</p>
  <pre><code>df = pd.read_csv('data.csv')
  geolocator = Nominatim(user_agent='latlongconvert')
  df['address'] = df['LastMatchingLatLong'].apply(geolocator.reverse)
  
  df['country'] = df['address'].apply(lambda x: (x.raw['address']['country']))
  df['state'] = df['address'].apply(lambda x: (x.raw['address']['state']))
  df['city'] = df['address'].apply(lambda x: (x.raw['address']['city']))
  </code></pre>
  <p>Where the last line creates the following error: <code>KeyError: 'city'</code></p>
  <p>When I look at a particular row it clearly contains the city key:</p>
  <pre><code>df['address'][0].raw['address']
  
  Ouput:
  {'tourism': 'Schwanentempel',
   'road': 'Auedamm',
   'suburb': 'Südstadt',
   'city': 'Kassel',
   'municipality': 'Niestetal',
   'state': 'Hessen',
   'postcode': '34121',
   'country': 'Deutschland',
   'country_code': 'de'}
  </code></pre>
  <p>I can even use <code>df['address'][0].raw['address']['city']</code> to extract it for that particular row.</p>