Python- urllib.urlencode:将字典项解析为字符串

时间:2017-10-05 11:21:31

标签: python urllib ordereddictionary

我需要像这样编码字典项

data = OrderedDict([('mID', ['54a309ae1c61be23aba0da54', '54a309ae1c61be23aba0da63'])])

到像这样格式化的字符串

mID=[54a309ae1c61be23aba0da54,54a309ae1c61be23aba0da63]

当我使用url_values = urllib.urlencode(data)时 我得到mID=%5B%2754a309ae1c61be23aba0da54%27%2C+%2754a309ae1c61be23aba0da63%27%5D

我该怎么办?

2 个答案:

答案 0 :(得分:1)

可能是:

"{}=[{}]".format("mID",",".join(data["mID"]))

答案 1 :(得分:1)

使用适用于Python v3.x的urllib.parse模块:

import collections
from urllib import parse

data = collections.OrderedDict([('mID', ['54a309ae1c61be23aba0da54', '54a309ae1c61be23aba0da63'])])
urlenc_str = parse.unquote_plus(parse.urlencode(data))
urlenc_str = urlenc_str.replace("'", '').replace(' ', '')

print(urlenc_str)

输出:

mID=[54a309ae1c61be23aba0da54,54a309ae1c61be23aba0da63]

检查类型:

print(type(urlenc_str))    #  <class 'str'>