通过邮寄请求传输字典

时间:2010-11-12 09:38:18

标签: python

我正在使用Python并尝试通过HTTP-Post请求向服务器发送字典(包含动态数据)。 实现它的最有效方法是什么?

4 个答案:

答案 0 :(得分:8)

使用urllib.urlencode将字典编码为POST。

import urllib
import urllib2

mydict = {'key1': 'value1', 'key2': 'value2'}
encoded_dict = urllib.urlencode(mydict)

request = urllib2.Request(myurl, encoded_dict)
# now make the request
response = request.urlopen().read()

答案 1 :(得分:4)

还有requests库:

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)

答案 2 :(得分:2)

表示此类数据的好方法是使用JSON。 Python有一个json模块可以提供帮助。

答案 3 :(得分:1)

import urllib2
import json

pydict = {'list': [{'k1': '60411', 'k2': 'val'}], 'Id': '775'}

jsondata = json.dumps(pydict)

postreq = urllib2.Request(_url, jsondata)
postreq.add_header('Content-Type', 'application/json')
resp = urllib2.urlopen(postreq)
print "resp:", resp.read()