Цитата синтаксического анализа 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 и прочитал ветку URL-адрес процентного кодирования с Python, но мне все равно не повезло.

Я использую Python3 с urllib3.


person GuyFawkes05th    schedule 11.12.2018    source источник


Ответы (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 переменной text вызова, а затем напечатал текст.

Надеюсь, это поможет вам прояснить ситуацию!

person Robert H    schedule 11.12.2018
comment
Это сработало. Он по-прежнему печатает ‹функциональную цитату по адресу 0x00000207F0325D08› вместе с текстом. Но по крайней мере печатает текст в процентном формате URL! спасибо - person GuyFawkes05th; 11.12.2018
comment
Можете ли вы обновить свой вопрос с помощью нового кода? Я чувствую, что вы все еще вызываете print(quote), который не нужен, если нет, я могу взглянуть на него и, возможно, указать, где он выводит эту информацию. - person Robert H; 11.12.2018
comment
и не проблема, рад, что помог вам :) - person Robert H; 11.12.2018