Advertisement
davidm1766

WebovaSluzba-WebovaSluza.py

May 22nd, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.19 KB | None | 0 0
  1. import json
  2. from urllib.parse import urlencode
  3. from urllib.request import urlopen
  4.  
  5.  
  6. class WebovaMetoda:
  7.     def __init__(self,url,params):
  8.         self._url = url
  9.         self._params = params
  10.  
  11.     #na to aby bol object callable musi mat metodu call
  12.     def __call__(self, *args,**kwargs):
  13.         if len(args)+len(kwargs) != len(self._params):
  14.             raise TypeError("nespravny pocet parametrov")
  15.  
  16.         parametre = dict(zip(self._params, args))
  17.  
  18.         if set(parametre) & set(kwargs):
  19.             raise TypeError("Dva krat specifikujes ten isty parameter")
  20.  
  21.         if set(kwargs) - set(self._params):
  22.             raise TypeError("Neznamy parameter")
  23.  
  24.         parametre.update(kwargs)
  25.         url =self._url + '?' + urlencode(parametre)
  26.         with urlopen(url) as data:
  27.             return json.load(data)
  28.  
  29.  
  30. class WebovaSluzba:
  31.  
  32.     def __init__(self,url):
  33.         self.url = url
  34.         with urlopen(url) as dokument:
  35.             popis = (json.load(dokument)) #zoznam v ktorm je dictionary
  36.  
  37.             for metoda in popis:
  38.                  setattr(self,metoda['name'], WebovaMetoda(metoda['url'],metoda['params']))           #vyhladavanie v dictionary cez  []
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement