首页 > 解决方案 > python 3.9 和 rdflib 不断改变 url 中的斜杠

问题描述

我对 Python 完全陌生。我正在使用 3.9.2 和rdflib。我尝试执行第一个示例,

from rdflib import Graph
g = Graph()
g.parse('http://dbpedia.org/resource/Semantic_Web')

for s, p, o in g:
    print(s, p, o)

我创建了一个 py 文件,将其粘贴进去,然后使用 windows 10 cmd,我 cd 到我的 pyhton 文件并执行python rdftest.py.

无论我如何设置网址,我都会得到

Traceback (most recent call last):
  File "D:\BACKUP\programming\rdftrest.py", line 3, in <module>
    g.parse('http://dbpedia.org/resource/Semantic_Web')
  File "C:\Users\spiro\AppData\Local\Programs\Python\Python39\lib\site-packages\rdflib\graph.py", line 1188, in parse
    source = create_input_source(
  File "C:\Users\spiro\AppData\Local\Programs\Python\Python39\lib\site-packages\rdflib\parser.py", line 281, in create_input_source
    ) = _create_input_source_from_location(
  File "C:\Users\spiro\AppData\Local\Programs\Python\Python39\lib\site-packages\rdflib\parser.py", line 312, in _create_input_source_from_location
    if path.exists():
  File "C:\Users\spiro\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 1407, in exists
    self.stat()
  File "C:\Users\spiro\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 1221, in stat
    return self._accessor.stat(self)
OSError: [WinError 123] The filename, directory name, or volume label syntax is 
incorrect: 'http:\\dbpedia.org\\resource\\Semantic_Web' 

我该如何解决?谢谢

标签: pythonpython-3.9rdflib

解决方案


这似乎是rdflib版本中的一个错误6.0.0。我遇到了同样的问题,解决方案是将版本降级为5.0.0. 然后它似乎工作正常。

看起来这个parse()函数搞砸了:它pathlib在看到 URL 和urllib看到file path.


推荐阅读