首页 > 解决方案 > 将三个 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?

标签: pythonurl

解决方案


那是因为你/getos.path.join. 你应该这样称呼它buildURL('http://', 'httpbin.org', 'get')os.path.join/被视为从基本位置的根目录挂钩的绝对路径,这是join函数的第一个参数:location


推荐阅读