我正在从下面的URL中读取URL参数
http://exaple.com/api/v1/get_example/?fruits_name=[apple%20+%20banana]
fruits = urllib.unquote(request.GET.get('fruits_name', None)).decode('utf8')
print fruits
我的输出是:[apple banana]
在苹果和香蕉之间,我得到三个空格,但在输出中没有+
符号。原始字符串为[apple + banana]
。我需要输出为[apple + banana]
。
有人可以建议我做错了什么吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以自行拆分查询字符串以保留加号:
from urllib.parse import urlparse, unquote
u = 'http://exaple.com/api/v1/get_example/?fruits_name=[apple%20+%20banana]'
o = urlparse(u)
qs = unquote(o.query)
queryDict = {k: v for (k, v) in [x.split("=", 1) for x in qs.split("&")]}
print(queryDict)
打印:
{'fruits_name': '[apple + banana]'}
答案 2 :(得分:0)
使用%xx转义符替换字符串中的特殊字符。字母,数字和字符“ _.-”都不会被引用。默认情况下,此函数用于引用URL的路径部分。可选的safe参数指定不应引用的其他字符-其默认值为'/'