如何使用python从URL检索键值对
我正在编写一个Python2.7脚本,这样给定一个包含一定数量的键值对(不是固定数量)的URL,就可以在json结构上检索这些值 这就是我到目前为止所做的:如何使用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', '
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