尝试填充"数据" python中urllib请求的一部分,包含列表中的值和一些格式。
说我有一个像[1492, 1493, 1493, ...]
我希望将这两个值纳入以下内容:
data = ({
'c_id': '458',
'state': 'live',
'spec_ids[]': '1492',
'spec_ids[]': '1493',
'spec_ids[]': '1494',
'spec_ids[]': '...',
'allow_undo': 'true',
'flash': 'False'
})
并且必须采用'spec_ids[]': '####'
最简单/最好的方法是什么?
我希望解决方案具有可扩展性,以便随着列表变长,它会继续为提交的数据添加值。
感谢任何和所有帮助。我真的被困在这里并尝试了许多不同的事情。
答案 0 :(得分:2)
字典不能有重复的值,但urllib.urlencode
接受任何可迭代的对象,因此我们可以使用列表来实现我们需要的功能。
import urllib
data = [
('c_id', '458'),
('state', 'live'),
('flash', 'False')
] + [ ('spec_ids[]',str(x)) for x in [1492, 1493, 1493] ]
print urllib.urlopen("http://stackoverflow.com/",urllib.urlencode(data)).read()
这使用列表生成器从我们的数据列表中创建'spec_ids[]'
字段。请注意,由于使用了urlopen的数据参数,这将是一个POST请求。