Python urlencode 不对特殊字符进行编码

Python urlencode don't encode special characters

我正在形成一个 post 请求。

mydict = {'key1': 'value@1', 'key2': 'value@2'}
encoded_dict = urllib.urlencode(mydict)

这将导致

key1=value%401&key2=value%402

我真正想要的是

key1=value@1&key2=value@2

还有其他方法吗?

如果您想做自己的事,就必须编写自己的编码器。例如:

mydict = {'key1': 'value@1', 'key2': 'value@2'}
>>> "&".join("{}={}".format(*i) for i in mydict.items())
'key2=value@2&key1=value@1'

但为什么不直接使用 JSON?