【问题标题】:Py2neo create node from objectPy2neo 从对象创建节点
【发布时间】:2021-12-21 11:29:35
【问题描述】:

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

class Person:
    def __init__(self, name, surname):
        self.name = name
        self.surname = surname

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

【问题讨论】:

    标签: python neo4j py2neo


    【解决方案1】:

    现在,我已经这样解决了:

        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()
    

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        储蓄保持不变。

        【讨论】:

        • 谢谢。我对python不是很有经验,所以我没有意识到这个解决方案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-26
        • 1970-01-01
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        相关资源
        最近更新 更多