Câu trả lời:
Sử dụng urllib.urlencode()
. Nó lấy từ điển các cặp khóa-giá trị và chuyển đổi nó thành một dạng phù hợp với URL (ví dụ key1=val1&key2=val2
:).
Nếu bạn đang sử dụng Python3, hãy sử dụng urllib.parse.urlencode()
Nếu bạn muốn tạo một URL với các tham số lặp lại như: p=1&p=2&p=3
bạn có hai tùy chọn:
>>> import urllib
>>> a = (('p',1),('p',2), ('p', 3))
>>> urllib.urlencode(a)
'p=1&p=2&p=3'
hoặc nếu bạn muốn tạo url với các tham số lặp lại:
>>> urllib.urlencode({'p': [1, 2, 3]}, doseq=True)
'p=1&p=2&p=3'
doeseq
về: "Nếu bất kỳ giá trị nào trong đối số truy vấn là chuỗi và liềuq là đúng, mỗi phần tử trình tự được chuyển đổi thành một tham số riêng biệt."
Sử dụng thư viện thao tác url Python bên thứ 3 furl :
f = furl.furl('')
f.args = {'a':'A', 'b':'B'}
print(f.url) # prints ... '?a=A&b=B'
Nếu bạn muốn các thông số lặp lại, bạn có thể làm như sau:
f = furl.furl('')
f.args = [('a', 'A'), ('b', 'B'),('b', 'B2')]
print(f.url) # prints ... '?a=A&b=B&b=B2'
pip install furl
Nó không phải là một phần của thư viện chuẩn
Điều này có vẻ giống Pythonic hơn một chút đối với tôi và không sử dụng bất kỳ mô-đun nào khác:
x = '&'.join(["{}={}".format(k, v) for k, v in {'a':'A', 'b':'B'}.items()])