如何使用python从URL检索键值对

如何使用python从URL检索键值对,python,python-2.7,url,Python,Python 2.7,Url,我正在编写一个Python2.7脚本,这样给定一个包含一定数量的键值对(不是固定数量)的URL,就可以在json结构上检索这些值 这就是我到目前为止所做的: from furl import furl url = "https://search/address?size=10&city=Madrid&offer_type=1&query=Gran%20v" f = furl(url) fields = ['size', 'city', 'offer_type', '

我正在编写一个Python2.7脚本,这样给定一个包含一定数量的键值对(不是固定数量)的URL,就可以在json结构上检索这些值

这就是我到目前为止所做的:

from furl import furl

url = "https://search/address?size=10&city=Madrid&offer_type=1&query=Gran%20v"

f = furl(url) 
fields = ['size', 'city', 'offer_type', 'query']

l = []
l.append(f.args['size'])
l.append(f.args['city'])
l.append(f.args['offer_type'])
l.append(f.args['query'])

body = {
        fields[0]: f.args[fields[0]],
        fields[1]: f.args[fields[1]],
        fields[2]: f.args[fields[2]],
        fields[3]: f.args[fields[3]]
    }
这段代码有效,但仅适用于我知道将有4个键值对以及这些对的名称的情况。例如,如果我的url更短或更大,我不知道如何面对这个问题

使用此命令
length=len(f.args)
我可以获得对的数量,但不知道如何从
f.args
对象中提取密钥名

多谢各位,
阿尔瓦罗

我有点困惑
f.args
已经是所需类型的类似字典的对象。如果要将其显式转换为字典,可以使用:

body = dict(f.args)

但即使这样似乎也没有必要。如果需要对象的新副本,以便在不影响原始实例的情况下对其进行更改,可以调用
.copy()
方法。

这就是您要查找的吗

from furl import furl

url = "https://search/address?size=10&city=Madrid&offer_type=1&query=Gran%20v"

f = furl(url) 

print zip(f.args.keys(),f.args.values())
输出:

[('size','10'),('city','Madrid'),('offer_type','1'),('query','Gran v')]
该库的文档记录不是特别好,但通过挖掘源代码可以看出,
f.args
是一个最终重定向到对象的属性。它支持所有标准的字典方法,以及许多更有趣的东西(也没有很好的文档)


因此,您可以在需要时使用
f.args
body。如果出于某种原因需要副本,请执行
f.args.copy()
,或者可能执行
dict(f.args)

列表(f.args)
f.args.keys()
?通常,当您调用类dict对象上的
list()
时,它会返回其键。您最需要的是
f.args.copy()
。Well seen.OP特别想要一个dict.Welp,我想不是,有一个+1