2017-02-07 9 views
1

나는 다음과 같은 URL 패턴을 가지고 :딕셔너리를 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을 얻을 수 있습니까?

+0

예. 'urllib.urlencode()'를 사용하십시오. – Jameson

답변

2

urlparseParseResult 개체를 생성합니다. 따라서 ParseResult의 개체를 만들고 URL을 생성하려면 geturl() 메서드를 사용하면됩니다.

>>> 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"] 

잘 작동해야합니다.