2017-02-07 5 views
1

Например у меня есть следующий шаблон URL:Могу ли я преобразовать dict в url?

url_pattern = { 
    "scheme": "http", 
    "netloc": "for.example.com", 
    "path": "/ex1", 
    "params": "", 
    "query": a=b&c=d, 
    "fragment": "" 
} 

Это так же, как инверсия выхода urlparse.urlparse("http://for.example.com/ex1?a=b&c=d"). Могу ли я получить URL-адрес от dict?

+0

Да. Используйте 'urllib.urlencode()'. – Jameson

ответ

2

urlparse создает объект ParseResult. Следовательно, просто создайте объект ParseResult и используйте метод geturl() для создания URL-адреса.

>>> url_pattern = { 
    "scheme": "http", 
    "netloc": "for.example.com", 
    "path": "/ex1", 
    "params": "", 
    "query": "a=b&c=d", 
    "fragment": "" 
} 
>>> from urlparse import ParseResult 
>>> ParseResult(**url_pattern).geturl() 
'http://for.example.com/ex1?a=b&c=d' 
+0

О! Это мило! – lerner

0
def geturl(pattern): 
    return pattern["scheme"] + "://" + pattern["netloc"] + pattern["path"] + ("?" if pattern["query"]) + pattern["query"] 

Должно работать достаточно хорошо.

Смежные вопросы