什么是方案';c';在Python中使用urlparse?

什么是方案';c';在Python中使用urlparse?,python,urlparse,Python,Urlparse,我认为这是一个错误,因为文档 为什么以下代码的输出输出为“c”?什么是方案c?如前所述,文件中不存在方案“c” from urllib.parse import urlparse print(urlparse('C:/ProgramData/Anaconda3/lib/site-packages/impala/thrift/ExecStats.thrift').scheme) 顺便说一下,我用的是蟒蛇3。垃圾进,垃圾出 您已告诉urlparse解析非URL的内容URL解析尽了最大努力。在本例

我认为这是一个错误,因为文档

为什么以下代码的输出输出为“c”?什么是方案c?如前所述,文件中不存在方案“c”

from urllib.parse import urlparse

print(urlparse('C:/ProgramData/Anaconda3/lib/site-packages/impala/thrift/ExecStats.thrift').scheme)

顺便说一下,我用的是蟒蛇3。

垃圾进,垃圾出


您已告诉
urlparse
解析非URL的内容<代码>URL解析尽了最大努力。在本例中,
C:
看起来像一个URL方案说明符,就像
http://blah.blah.blah/...
,因此
urlparse
决定方案是
c

c:/ProgramData/Anaconda3/lib/site packages/impala/thrift/ExecStats。thrift
不是URL。@user2357112这似乎是impyla库中的错误,因为它使用urlparse查找thrift文件。由于Windows文件路径不同,因此无法工作。我在impyla中没有看到任何试图将非URL解析为URL的内容。不过,我确实看到有几个地方您可能会错误地将文件系统路径而不是URL传递给它。如果你这么做了,那是你的bug,不是impyla的。@user2357112抱歉,我是说ThriftPy中的bug。请检查thriftpy\parser\parser.py中的第487行是的,这是一个bug。看起来ThriftPy已经死了,开发人员现在推荐ThriftPy2,ThriftPy2支持。不过,我不知道我是否会使用这两个项目中的任何一个。这是impyla库中的一个错误,因为它使用urlparse查找thrift文件。对不起,我是指ThriftPy库。