如何使用Python将URL查询字符串转换为元组列表?

orw*_*ian 9 python url parsing

我正在努力将网址转换为嵌套元组.

# Convert this string
str = 'http://somesite.com/?foo=bar&key=val'

# to a tuple like this:
[(u'foo', u'bar'), (u'key', u'val')]
Run Code Online (Sandbox Code Playgroud)

我想我需要做的事情如下:

 url = 'http://somesite.com/?foo=bar&key=val'
 url = url.split('?')
 get = ()
 for param in url[1].split('&'):
     get = get + param.split('=')
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?谢谢!

And*_*are 28

我相信你正在寻找urlparse模块.

该模块定义了一个标准接口,用于在组件中解析统一资源定位符(URL)字符串(寻址方案,网络位置,路径等),将组件组合回URL字符串,并将"相对URL"转换为绝对URL给出"基本URL".

这是一个例子:

from urlparse import urlparse, parse_qsl

url = 'http://somesite.com/?foo=bar&key=val'
print parse_qsl(urlparse(url)[4])
Run Code Online (Sandbox Code Playgroud)

输出:

[('foo', 'bar'), ('key', 'val')]
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我首先使用该urlparse函数来解析整个URL,然后我使用该parse_qsl函数将查询字符串(从中返回的第五个元素urlparse)分解为元组列表.