from urllib.request import urlopen class PlantillaUrl: def __init__(self, plantilla): self.plantilla = plantilla def abrir(self, **kwargs): return urlopen(self.plantilla.format_map(kwargs)) yahoo = PlantillaUrl('https://samples.openweathermap.org/data/2.5/forecast?id={id}&appid=b1b15e88fa797225412429c1c50c122a1') for linea in yahoo.abrir(id='524901', appid='b1b15e88fa797225412429c1c50c122a1'): print(linea.decode('utf-8'))