使用连接
你有没有尝试过简单"/".join(url_join_items)
。 http不是总是使用正斜杠吗?不过,您可能必须手动设置前缀“https://”和后缀。
就像是:
url = "https://{}.json".format("/".join(url_join_items))
使用reduce和urljoin
这里有一个相关问题 https://stackoverflow.com/questions/10893374/python-confusions-with-urljoinSO 在某种程度上解释了实施背后的想法urljoin
。您的用例似乎不是最合适的。
使用时reduce
and urljoin
,我不确定它会做问题的意图,这在语义上就像os.path.join
,但对于网址。考虑以下:
from urllib.parse import urljoin
from functools import reduce
parts_1 = ["a","b","c","d"]
parts_2 = ["https://","server.com","somedir","somefile.json"]
parts_3 = ["https://","server.com/","somedir/","somefile.json"]
out1 = reduce(urljoin, parts_1)
print(out1)
d
out2 = reduce(urljoin, parts_2)
print(out2)
https:///somefile.json
out3 = reduce(urljoin, parts_3)
print(out3)
https:///server.com/somedir/somefile.json
请注意,除了 https 前缀后面的额外“/”之外,第三个输出可能最接近询问者的意图,除非我们必须完成使用分隔符格式化各部分的所有工作。