python - 将三个 URL 组件组合成一个 URL
问题描述
我正在尝试编写一个函数,将 URL 的三个组件:协议、位置和资源组合到一个 URL 中。
我有以下代码,它只部分工作,返回一个只有协议和资源组件的 URL,而不是位置组件。
代码:
from urllib.parse import urlparse
import os
def buildURL(protocol, location, resource):
return urllib.parse.urljoin(protocol, os.path.join(location,
resource))
Example: buildURL('http://', 'httpbin.org', '/get')
这返回http:///get
。我试图调试它以允许位置参数位于 URL 中。它应该返回http://httpbin.org/get
。
如何成功构建 URL?
解决方案
那是因为你/get
把os.path.join
. 你应该这样称呼它buildURL('http://', 'httpbin.org', 'get')
。os.path.join
将/
被视为从基本位置的根目录挂钩的绝对路径,这是join
函数的第一个参数:location
推荐阅读
- python - Python flask-ask 中的 Amazon Alexa Proactive Events 请求
- laravel - 根据模型方法结果返回集合
- python - 如果字符串中只有一个结果,为什么我的正则表达式会返回 2 个结果?
- php - 将数据透视表导出到 CSV Laravel
- c# - 计数单词和数字总和为什么不起作用?
- reactjs - Redux Action 没有击中 Reducer [React]
- node.js - TypeError:“listener”参数必须是一个函数:http.createServer
- c# - 使用 Visual Studio 测试运行程序运行的 xUnit 测试的输出未显示在“输出”窗口中
- excel - VBA - 杀死后台IE进程,让前台运行
- python - 随机超度量树