0

我曾希望将一个类映射到 gremlin python 中的一个顶点就像这样简单:

def toVertex(self,g):
    t=g.addV(type(self))
    for name,value in vars(self).items():
        if debug:
            print("%s=%s" % (name,value))
        t=t.property(name,str(value))
    t.iterate()    

为了避免任何类型强制问题,我认为 str(value) 会确保所有属性都被视为字符串。

不幸的是,我收到错误消息:

  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gremlin_python/structure/io/graphsonV3d0.py", line 341, in dictify
    return writer.toDict(typ())
TypeError: __init__() missing 1 required positional argument: 'record'

我在这里缺少什么-如何解决?

4

1 回答 1

0

问题是该类型不返回字符串,而是返回一个类,并试图调用期望记录的类的构造函数:

即使不使用 str() 作为值,以下代码也可以工作:

def toVertex(self,g):
    label=type(self).__name__;
    t=g.addV(label)
    for name,value in vars(self).items():
        if debug:
            print("%s=%s" % (name,value))
        t=t.property(name,value)
    t.iterate()    
于 2020-04-01T09:11:42.887 回答