在Python3中,`urllib.parse`模块提供了`urlencode`和`parse_qs`函数,用于URL编码和解码。
1. `urlencode`函数用于将字典或包含键值对的元组列表编码为URL查询字符串。它的用法如下:
```python
from urllib.parse import urlencode
params = {
'name': 'John Doe',
'age': 30,
'city': 'New York'
}
query_string = urlencode(params)
print(query_string)
```
输出结果为:`name=John+Doe&age=30&city=New+York`
2. `parse_qs`函数用于将URL查询字符串解码为字典。它的用法如下:
```python
from urllib.parse import parse_qs
query_string = 'name=John+Doe&age=30&city=New+York'
params = parse_qs(query_string)
print(params)
```
输出结果为:`{'name': ['John Doe'], 'age': ['30'], 'city': ['New York']}`
注意:`parse_qs`函数返回的值是一个字典,其中每个键对应的值是一个列表。如果你只想获取单个值,可以使用`params['name'][0]`来获取。如果URL查询字符串中有重复的键,`parse_qs`函数会将其作为列表的元素。
另外,如果你想将URL编码为完整的URL,包括协议、域名、路径和查询字符串,可以使用`urlunparse`函数。如果你想将完整的URL解析为各个部分,可以使用`urlparse`函数。这两个函数也在`urllib.parse`模块中提供。
总结:
- `urlencode`函数用于将字典或包含键值对的元组列表编码为URL查询字符串。
- `parse_qs`函数用于将URL查询字符串解码为字典。
- `urlunparse`函数用于将URL编码为完整的URL。
- `urlparse`函数用于将完整的URL解析为各个部分。