Я пытаюсь создать RDF-граф, используя сериализацию графа в python.
import rdflib
from rdflib import Graph
from rdflib import URIRef, BNode, Literal
...some code for cleaning data...
g = Graph()
def CreateRDF( base, s, p, o, t ):
subject = URIRef(base + "/" + s)
objectType = URIRef(base)
predicate = URIRef(objectType + "#" + p)
objects = Literal(o)
col_type = t
if 'text' in col_type:
g.add( (subject, predicate, Literal(o, datatype=XSD.string) ) )
elif 'varchar' in col_type:
g.add( (subject, predicate, Literal(o, datatype=XSD.string) ) )
elif 'int' in col_type:
g.add( (subject, predicate, Literal(o, datatype=XSD.int) ) )
elif 'year' in col_type:
g.add( (subject, predicate, Literal(o, datatype=XSD.gYear) ) )
else :
g.add( (subject, predicate, objects ) )
g.add( (subject, RDF.type, objectType) )
CreateRDF(base, subject, predicate, objects, column_type)
print("Creating file . . .")
print(g.serialize(format='turtle'))
В качестве формы RDF я использовал формат черепахи.Но я получаю следующую ошибку:
TypeError: '>' not supported between instances of 'int' and 'NoneType'
Я не пытаюсь сравнить что-либо между данными.Я также уже очищаю данные, удаляя null
, 0
, >
, <
и т. Д. Но RDFLib по-прежнему предполагает, что я пытаюсь сравнить данные.Что я не понимаю, так это мой тип данных - строка.Что я должен сделать, чтобы это исправить?Спасибо
PS: Мои данные в формате SQL, и здесь я использовал DataFrame.