문제

URL 매개 변수로 사용하기 위해 Python 사전을 문자열로 변환하려고합니다. 나는 더 나은 것이 있다고 확신합니다. 피티닉 이것을하는 방법. 무엇입니까?

x = ""
for key, val in {'a':'A', 'b':'B'}.items():
    x += "%s=%s&" %(key,val)
x = x[:-1]
도움이 되었습니까?

해결책

사용 urllib.urlencode(). 키 값 쌍 사전이 필요하고 URL에 적합한 형태로 변환합니다 (예 : key1=val1&key2=val2).

Python3을 사용하는 경우 사용하십시오 urllib.parse.urlencode()

다음과 같은 반복적 인 매개 변수로 URL을 만들려면 다음과 같습니다. p=1&p=2&p=3 두 가지 옵션이 있습니다.

>>> import urllib
>>> a = (('p',1),('p',2), ('p', 3))
>>> urllib.urlencode(a)
'p=1&p=2&p=3'

또는 반복적 인 매개 변수로 URL을 만들고 싶다면 :

>>> urllib.urlencode({'p': [1, 2, 3]}, doseq=True)
'p=1&p=2&p=3'

다른 팁

제 3 자 Python URL 조작 라이브러리를 사용하십시오 감다:

f = furl.furl('')
f.args = {'a':'A', 'b':'B'}
print(f.url) # prints ... '?a=A&b=B'

반복적 인 매개 변수를 원한다면 다음을 수행 할 수 있습니다.

f = furl.furl('')
f.args = [('a', 'A'), ('b', 'B'),('b', 'B2')]
print(f.url) # prints ... '?a=A&b=B&b=B2'

이것은 나에게 조금 더 많은 피닉 인 것처럼 보이며 다른 모듈을 사용하지 않습니다.

x = '&'.join(["{}={}".format(k, v) for k, v in {'a':'A', 'b':'B'}.items()])
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top