我开始学习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一起使用。
答案 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
的调用的输出分配给可变的调用文本,然后是打印的文本。
希望可以帮助您澄清事物!