Py2neo 从对象创建节点

Py2neo create node from object

有人可以帮助我如何从对象创建节点吗?例如我们有类似

的对象模式
class Person:
    def __init__(self, name, surname):
        self.name = name
        self.surname = surname

我想创建 py2neo 节点 Node("Person", name="John", surname="Doe") ,但是,我想对此进行概括,以便我可以将它与多个模式一起使用,例如 Node(type(obj), **obj) 但实际有效。

目前,我是这样解决的:

    def create(self, obj):
        obj_props = {}
        for property, value in vars(obj).items():
            obj_props[property] = value

        node = Node(type(obj).__name__, **obj_props)
        tx = self.graph.begin()
        tx.create(node)
        tx.commit()

不过,如果有人有更好的解决方案,我愿意学习。

尝试使用 py2neo.ogm 模块,因为这正是它的用途。文档中有这方面的详细信息。

您可以将创建逻辑更改为:

def create_node(obj):
    return Node(type(obj).__name__, **obj.__dict__)

储蓄保持不变。