code: def parse_JSON(self, JSON_string):
          
          if JSON_string is None:
              raise ParseResponseError('JSON data is None')
          d = json.loads(JSON_string)
          observation_parser = ObservationParser()
          if 'cod' in d:
              # Check if server returned errors: this check overcomes the lack of use
              # of HTTP error status codes by the OWM API 2.5. This mechanism is
              # supposed to be deprecated as soon as the API fully adopts HTTP for
              # conveying errors to the clients
              if d['cod'] == "200" or d['cod'] == 200:
                  pass
              else:
                  if d['cod'] == "404" or d['cod'] == 404:
                      print("OWM API: data not found - response payload: " + json.dumps(d))
                      return None
                  else:
                      raise APIResponseError("OWM API: error - response payload: " + json.dumps(d), str(d['cod']))
  
          # Handle the case when no results are found
          if 'count' in d and d['count'] == "0":
              return []
          if 'cnt' in d and d['cnt'] == 0:
              return []
          if 'list' in d:
              return [observation_parser.parse_JSON(json.dumps(item)) \
                      for item in d['list']]
  
          # no way out..
          raise ParseResponseError(''.join([__name__,
                                  ': impossible to read JSON data']))
docs: Parses a list of *Observation* instances out of raw JSON data. Only
          certain properties of the data are used: if these properties are not
          found or cannot be parsed, an error is issued.
  
          :param JSON_string: a raw JSON string
          :type JSON_string: str
          :returns: a list of *Observation* instances or ``None`` if no data is
              available
          :raises: *ParseResponseError* if it is impossible to find or parse the
              data needed to build the result, *APIResponseError* if the OWM API
              returns a HTTP status error