urllib3解析报价

时间:2018-12-11 16:02:09

标签: python-3.x urllib3

我开始学习python3,并且尝试将字符串转换为百分比编码。我正在使用urllib3。这是什么内容:

import urllib3

from urllib.parse import quote 
quote ('/this will be the text/')
print (quote)

代码的结果显示如下:

<function quote at 0x7ff77eca3d08>

我真正想要的是:

this%20will%20be%20the%20text

老实说,我读了urllib3的Documentation并读了线程percent encoding URL with Python,但是我还是没有运气。

我正在将Python3与urllib3一起使用。

1 个答案:

答案 0 :(得分:1)

嗨,GuyFawkes05th,欢迎您到StackOverflow。

您遇到的行为不是错误或问题,而是完全按照您的要求执行。

考虑此代码段在IDLE中运行:

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import urllib3
>>> from urllib.parse import quote
>>> quote('/this will be the text/')
'/this%20will%20be%20the%20text/'
>>> print(quote)
<function quote at 0x00000000030557B8>
>>> 

您可以看到在调用报价后立即转义了您的文本,但是您的打印语句没有反映出这一点。这是因为您要打印函数本身。如果您稍微修改代码,它将按预期工作:

>>> import urllib3
>>> from urllib.parse import quote
>>> text = quote('this will be the text')
>>> print(text)
this%20will%20be%20the%20text
>>> 

您可以在这里看到,我将对quote的调用的输出分配给可变的调用文本,然后是打印的文本。

希望可以帮助您澄清事物!