如下dict:
test = { "atest" : " atest", "btest" : "btest"}
使用json.dumps(test)后进行url_encode:
test = { "atest" : "atest", "btest" : "btest"} jstr = json.dumps(test) urlTest = { 'urltest' : jstr}
打印如下:
urltest=%7B%22atest%22%3A+%22atest%22%2C+%22btest%22%3A+%22btest%22%7D
使用反编码后,会发现:
多出一个空格,究其原因,是python json dict的时候,生成的字符串中在’,’和’:’后默认有一个空格,解决方法:
使用separators指定分隔符,系统默认分隔符是(‘, ‘,’: ‘)
代码如下:
test = { "atest" : "atest", "btest" : "btest"} jstr = json.dumps(test, separators=(',',':')) urlTest = { 'urltest' : jstr} print urllib.urlencode(urlTest)
打印如下:
urltest=%7B%22atest%22%3A%22atest%22%2C%22btest%22%3A%22btest%22%7D
进行反编码,可以看到已经将空格去掉
使用场景:
不同语言对参数进行url编码后的值不一样