Ошибка типа: должна быть str, а не байтами - python sparql-client 3.6 - PullRequest
1 голос
/ 24 марта 2020

Я попытался запросить суперклассы для данного класса, используя python sparql-client 3.6. Используя следующий фрагмент кода

dbo_prefix = 'http://dbpedia.org/ontology/'
_class = 'PoliticalParty'
s = sparql.Service('http://dbpedia.org/sparql', "utf-8", "GET")
statement = 'SELECT distinct ?superclass WHERE { dbo:%s rdfs:subClassOf* ?superclass. ' \
            'FILTER (strstarts(str(?superclass), "%s"))}' % (_class, dbo_prefix)
print(statement)
result = s.query(statement)
for row in result.fetchone():
    print(row)

, но происходит сбой, как в StackTrace ниже. Я отладил код и обнаружил, что внутри lib (sparql.py) он преобразует тип из str в байты, после чего падает перед отправкой запроса. enter image description here

Я попробовал сгенерированный запрос непосредственно в конечной точке , и он правильно получил результаты.

...