在 .replace 方法的 Python pyngrok 错误中

Posted

技术标签:

【中文标题】在 .replace 方法的 Python pyngrok 错误中【英文标题】:In Python pyngrok error for .replace method 【发布时间】:2021-03-18 21:14:33 【问题描述】:

我在这一行得到一个错误:

link = ngrok.connect(4040,"http").replace("http","https")

错误:

“NgrokTunnel”实例没有“替换”成员

【问题讨论】:

ngrok.connect(4040,"http") 是字符串吗?它输出什么? 我想在端口 4040 上建立一个服务器,并通过 ngrok 在端口上建立一个链接,当在链接中看到 http 更改为 https 【参考方案1】:

我已经测试过了。

您的link 不是字符串。您必须将其转换为字符串才能替换文本。

这适用于函数 str()。

link = str(ngrok.connect()).replace("http", "https")

【讨论】:

很高兴听到,您能验证我的回答吗?【参考方案2】:

接受的答案并不完全正确,因为当您想要的字符串只是 https://<public_sub>.ngrok.io 部分时,您最终会得到的字符串是 [<NgrokTunnel: "https://<public_sub>.ngrok.io" -> "http://localhost:80">]

NgrokTunnel object 有一个public_url 属性,这是你想要的,所以这样做:

link = ngrok.connect(4040, "http").public_url.replace("http","https")

此外,如果您甚至不需要打开 http 端口,只需打开单个隧道即可为您提供 https 链接,无需操作字符串:

link = ngrok.connect(4040, bind_tls=True).public_url

值得注意的是,如果您使用的是older version of pyngrok (pre-5.0.0 release),则接受的答案起作用。

【讨论】:

以上是关于在 .replace 方法的 Python pyngrok 错误中的主要内容,如果未能解决你的问题,请参考以下文章

在 .replace 方法的 Python pyngrok 错误中

Python replace()方法

Python replace()方法

python中的列表是不是有类似.replace()的方法? [复制]

python 替换字符串的方法replace()正则re.sub()

Python中str.replace()的使用方法