我正在尝试使用urllib和urlencode以下列格式生成URL链接。
<img src=page.psp?KEY=%28SpecA%2CSpecB%29&VALUE=1&KEY=%28SpecA%2C%28SpecB%2CSpecC%29%29&VALUE=2>
我正在尝试使用我的字典中的数据输入到urllib.urlencode()函数中,但是,我需要将其转换为键和值具有变量名称的格式,如下所示。因此,我字典中的键将= NODE,值将为= VALUE。
wanted = urllib.urlencode( [("KEY",v1),("VALUE",v2)] )
req.write( "<a href=page.psp?%s>" % (s) );
我遇到的问题是我想要上面的URL而不是我得到的是下面的,而不是KEY =(SpecA,SpecB)NODE = 1,KEY =(SpecA,SpecB,SpecC)NODE = 2这就是我想要的。
KEY=%28SpecA%2CSpecB%29%2C%28%28SpecA%2CSpecB%29%2CSpecC%29&VALUE=1%2C2
到目前为止,我已经从字典中提取了键和值,提取到元组,列表,字符串以及尝试过dict.items()但它没有帮助太多,因为我仍然无法使其进入格式我想要。我也是这样使用Python服务器页面,这就是为什么我不得不因为常量字符串错误而将字符串打印为字符串。这是我到目前为止的一部分:
k = (str(dict))
ver1 = dict.keys()
ver2 = dict.values()
new = urllib.urlencode(function)
f = urllib.urlopen("page.psp?%s" % new)
我想知道在从字典中提取值/将它们转换为不同的格式以获得我想要的输出方面我需要改变什么?任何帮助将不胜感激,如果需要,我可以添加更多我的代码(如它已经变得杂乱)。感谢。
答案 0 :(得分:1)
这应该为您提供所需的格式:
data = {
'(SpecA,SpecB)': 1,
'(SpecA,SpecB,SpecC)': 2,
}
params = []
for k,v in data.iteritems():
params.append(('KEY', k))
params.append(('VALUE', v))
new = urllib.urlencode(params)
请注意,鉴于dicts
是无序的,KEY / VALUE配对可能不是您想要的顺序。