格式化urllib quote_plus的编码输出

时间:2017-10-04 11:16:53

标签: python urllib

我有一个字符串列表。

category_list = "[u'Automation', u' Card Readers & POS']"

现在,我正在执行以下操作

category_list = urllib.quote_plus(category_list, safe=':/'.encode('utf-8'))

我将编码数据发布到网络中,在解码列表时输出格式如下所示。

[u\'Automation\', u\' Card Readers & POS\']

这是API的格式不正确,我需要将列表转换为以下格式(删除\)。

['Automation', ' Card Readers & POS']

请帮助我。

1 个答案:

答案 0 :(得分:0)

你做错了事。您在request.GET中获得了一个字符串,您的框架将其转换为unicode。通过将其直接传递给str,您的unicode字符将成为该字符串的一部分; quote_plus可以做的任何事情都无法解决这个问题。因此,您需要先进行编码。

search_cat = request.GET['category'].encode('utf-8').split(',')
urllib.quote_plus(str(search_cat), safe=':/')

请注意,更好的解决方案是切换到Python 3,其中所有字符串都是unicode,并且u前缀标记不存在。