如何在python中转义双井号'##'

时间:2019-04-11 16:17:04

标签: python string escaping

我有一个密码,该密码在代码中解密时带有双井号##。这让python感到窒息,因为它似乎认为这是一条评论。我试过使用re.escape()函数,但不能逃脱双##。

有没有办法让python将整个字符串视为简单的字符串而已?

我正在连接到Rest 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只是一个从配置文件返回用户名和加密密码的函数。并且确实会正确返回密码,例如password ##。

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 个答案:

答案 0 :(得分:2)

事实证明这是网址编码问题。我通过这样做解决了。

import urllib.parse
urllib.parse.quote(ranger_admin_password)