Попытка создать RDF-граф и получить TypeError: '>' не поддерживается между экземплярами int и NoneType - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь создать 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.

...