Как избежать двойного знака «##» в питоне - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть пароль, который при расшифровке в коде имеет знак двойного фунта, ##.Это душит питона, поскольку кажется, что это комментарий.Я пытался использовать функцию re.escape (), но это не исключает двойной ##.

Есть ли способ заставить Python обрабатывать всю строку как просто строку и не более того?

Я подключаюсь к URL-адресу остальных, чтобы получить некоторые данные.Требуется аутентификация.

get_all_users_from_service_policy(ranger_host, get_connection_info('RANGER_API')[0], get_connection_info('RANGER_API')[1], cluster_name.cluster_name + '_' + service.service_name)

get_connection_info - это просто функция, которая возвращает имя пользователя и зашифрованный пароль из файла конфигурации.И он возвращает пароль правильно, пароль ##, например.

get_all_users_from_service_policy делает это:

def get_all_users_from_service_policy(ranger_host, ranger_admin_user, ranger_admin_password, ranger_service, api_version="v2",
                                      ranger_port=6182):
    api_url = "https://{}:{}@{}:{}/service/public/{}/api/service/{}/policy".format(ranger_admin_user,
                                                                                   ranger_admin_password, ranger_host,
                                                                                   ranger_port, api_version,
                                                                                   ranger_service)
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
    result = requests.get(api_url, auth=(ranger_admin_user, ranger_admin_password), verify=False)
    result = json.loads(result.content)

1 Ответ

2 голосов
/ 11 апреля 2019

Это оказалось проблемой с кодировкой URL. Я решил это, сделав ..

import urllib.parse
urllib.parse.quote(ranger_admin_password)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...