--- /dev/null
+import requests
+
+
+class OpenWeatherMapError(RuntimeError):
+ pass
+
+
+def openweathermap_json(apikey, cityid):
+ """Returns parsed JSON as returned by openweathermap for the given cityid.
+ In case of errors, an OpenWeatherMapError is raised."""
+ baseurl = 'http://api.openweathermap.org/data/2.5/weather'
+ query = baseurl + '?units=metric&APPID={}&id={}&lang=de'.format(apikey, cityid)
+ try:
+ response = requests.get(query)
+ if response.status_code != 200:
+ raise OpenWeatherMapError('Got status code {} ({}).'.format(response.status_code, response.reason))
+ else:
+ return response.json()
+ except requests.exceptions.RequestException as error:
+ raise OpenWeatherMapError('Request not successful: {}'.format(error))