如何使urllib.urlencode使用双引号而不是单引号?

时间:2016-06-16 13:13:34

标签: python

我对urlencode有疑问。这是一个例子:

urllib.urlencode({"action":"task_exam_save_result","examid":5,"t2],False,2]],"spendTime":911},"submit":"true","summary":{"correct":0,"wrong":2}})

所以,我明白了:

examresult=%7B%27spendTime%27%3A+911%2C+%27choice%27%3A+%5B%5B1593%2C+%5B0%5D%2C+False%2C+783%5D%2C+%5B1591%2C+%5B2%5D%2C+False%2C+2%5D%5D%7D&submit=true&summary=%7B%27wrong%27%3A+2%2C+%27correct%27%3A+0%7D&taskid=10&action=task_exam_save_result&examid=5

然后,我将上面的字符串复制到http://tool.chinaz.com/tools/urlencode.aspx进行URL解码并得到:

examresult={'spendTime': 911, 'choice': [[1593, [0], false, 783],
[1591, [2], false, 2]]}&submit=true&summary={'wrong': 2, 'correct':
0}&taskid=10&action=task_exam_save_result&examid=5

因此,每个双引号都成为单引号;为什么呢?

我希望它保留双引号,因为我必须将解码后的字符串传输到其他编程语言,例如要解析的Java和Objective C及其字符串需要双引号。

我该怎么做?

2 个答案:

答案 0 :(得分:5)

我不会使用urlencode here,而是使用json.dumps()转换为JSON,然后使用urlencode或b64encode以便在网址中使用它。

答案 1 :(得分:-1)

引号不是字符串

的一部分

由您决定使用哪个引用,并由Python引用它。

>>> 'asdf'
'asdf'
>>> "asdf"
'asdf'
>>> "as'df"
"as'df"