2012-11-26 149 views
0

给出JSON {"foo":"bazz","1":2}从JSON转换由蟒蛇

发布的数据我想将其转换为POST数据:

"foo"="bazz";"1"=2; 

(数据的情况下,它是从HTML表单张贴格式)

是否存在decoderjson>> POST data?如果不是,下一个脚本是否也会这样做?

json_body = {"foo":"bazz","1":2} 
data = '' 
for key, value in json_body.items(): 
    data += '"{key}"={value};'.format(key=key, value=value) 
print data 
>> "foo"="bazz";"1"=2; 

感谢

+0

您指定的格式是* not * POST数据(x-www-form-urlencoded);应该是什么格式? –

回答

3

urllib.urlencode使用:

from urllib import urlencode 

data = urlencode(json_body) 

这产生x-www-form-urlencoded数据,这是默认的mime类型使用浏览器POST-ING HTML表单时。

+0

但这个的输出是1 = 2&foo = bazz,而不是“foo”=“bazz”;“1”= 2; ..是那个有效的post数据? – eligro

+0

@eligro:词典没有固有的顺序。 *通常* URL GET和POST请求中的参数排序无关紧要。如果您需要特定订单,请使用'.items()'并在urlencoding之前进行排序。您正在查找的输出不是x-www-form-urlencoded POST数据。 –

+0

我是指&而不是;,他们是一样的吗? – eligro