docs: def _load_response(self, action):
          """
          returns API reponse from cache or raises ValueError
          """
          _query = self.cache[action]['query'].replace('&format=json', '')
          response = self.cache[action]['response']
  
          if not response:
              raise ValueError("Empty response: %s" % self.params)
  
          try:
              data = utils.json_loads(response)
          except ValueError:
              raise ValueError(_query)
  
          if data.get('warnings'):
              if 'WARNINGS' in self.data:
                  self.data['WARNINGS'].update(data['warnings'])
              else:
                  self.data['WARNINGS'] = data['warnings']
  
          if data.get('error'):
              utils.stderr("API error: %s" % data.get('error'))
              raise LookupError(_query)
  
          if 'query' in action and data.get('query'):
              if data['query'].get('pages'):
                  if data['query']['pages'][0].get('missing'):
                      raise LookupError(_query)
  
          if action == 'parse' and not data.get('parse'):
              raise LookupError(_query)
  
          if action == 'wikidata':
              handle_wikidata_errors(data, _query)
  
          return data