BuLas-BuLas属性

2024-06-28 06:08:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Bulbflow通过python访问{a2}。在

我现在试图将python列表另存为一个节点属性,但总是遇到错误。从documentation可以看出,当在模型中定义列表时,列表是一种可接受的类型,但是我想在定义模型之后保存一个list属性,即

anode = g.vertices.get(123)
anode.specs = [(2, 0.27911702036756064), (5, 0.6708785014712791)]
anode.save()

但我得到了以下错误:

^{pr2}$

我尝试使用convert_to_db函数,但不确定语法是什么。在

有什么办法吗?问题是我有一个元组列表吗?在

谢谢!在

=============更新===========

按照彼得的建议,我用一个简单的单子做了同样的尝试,却遇到了同样的错误:

SystemError: (
    {'status': '200',
     'content-length': '172',
     'content-type': 'application/json; charset=UTF-8',
     'access-control-allow-origin': '*',
     'server': 'Jetty(6.1.25)'},
     '"java.lang.IllegalArgumentException:
         Unknown property type on: [0.0, 0.0, 0.0, 0.42659109777029425, 0.0, 0.0, 0.0, 0.0, 0.5234052770685714, 0.0],
         class java.util.ArrayList"')

有什么想法吗?在


Tags: 模型a2类型列表属性节点定义documentation
1条回答
网友
1楼 · 发布于 2024-06-28 06:08:42

Neo4j只支持包含基本类型的列表,如stringintbool等(列表中不允许混合类型)。在

以下是Neo4j支持的属性类型:

http://docs.neo4j.org/chunked/preview/graphdb-neo4j-properties.html

要在Neo4j中存储混合类型list,可以将其另存为JSON文档字符串。在

灯泡有一个DocumentProperty类型,它为您进行dict<;->;json转换。在

看。。。在

如果使用通用的VertexEdge,则需要在保存之前手动执行此转换:

specs = [(2, 0.27911702036756064), (5, 0.6708785014712791)]
anode = g.vertices.get(123)
anode.specs = g.client.type_system.database.to_document(specs)
anode.save()

但是,如果您使用的是Model,灯泡将为您完成转换。只需使用Document属性而不是List定义模型:

^{pr2}$

…然后你可以像这样使用你的模型。。。在

>>> from people import Person, Knows
>>> from bulbs.neo4jserver import Graph

>>> g = Graph()
>>> g.add_proxy("people", Person)
>>> g.add_proxy("knows", Knows)

>>> specs = [(2, 0.27911702036756064), (5, 0.6708785014712791)]

# You can save specs when you create it...
>>> james = g.people.create(name="James", specs=specs)

# ...or save it after creation...
>>> julie = g.people.create(name="Julie")
>>> julie.specs = specs
>>> julie.save()

http://bulbflow.com/docs/api/bulbs/model/

相关问题 更多 >