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__)
储蓄保持不变。
有人可以帮助我如何从对象创建节点吗?例如我们有类似
的对象模式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__)
储蓄保持不变。