1

この質問がバカすぎて申し訳ありません... 私は Python+Django+Bulbs+Neo4j の初心者です。

以下に詳述するように、Python + Django シェルを使用しているときに、g.gremlin.execute() によって生成された整数を取得しようとしていますが、成功しませんでした。

まず、Neo4j の Gremlin コンソールでのクエリ:

gremlin> g.v(2).out
==> v[6]
==> v[4]
==> v[8]
==> v[7]
gremlin> g.v(2).out.count()
==> 4

以下で試したように、Python + Djangoシェルでこの結果を取得し、変数に渡すために何をするつもりですか:

>>> from bulbs.neo4jserver import Graph
>>> from bulbs.model import Node,Relationship
>>> g = Graph()
>>> sc = " g.v(vertex_id).out.count()"
>>> params = dict(vertex_id = 2)
>>> val = g.gremlin.execute(sc,params)
>>> val
<bulbs.neo4jserver.client.Neo4jResponse object at 0x243cfd0>

これから先も行けません。

>>> val.one()
<bulbs.neo4jserver.client.Neo4jResult object at 0x2446b90>
>>> val.one().data
>>> val.one().results
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'Neo4jResult' object has no attribute 'results'

誰が私が間違っているのか教えてください。どうもありがとう!

4

1 に答える 1

1

生の結果データは、Result オブジェクトのraw属性になります。

>>> from bulbs.neo4jserver import Graph
>>> from bulbs.model import Node,Relationship
>>> g = Graph()
>>> script = " g.v(vertex_id).out.count()"
>>> params = dict(vertex_id = 2)
>>> resp = g.gremlin.execute(script,params)
>>> result = resp.one()
>>> result.raw

注:result.data要素のプロパティ データを返すため、頂点またはエッジ、つまり、Neo4j 用語でのノードまたは関係を返さない限り、空になります。

見る...

サーバー応答で Neo4j サーバーが返した内容を確認するには、Responseヘッダーとコンテンツを出力します。

>>> from bulbs.neo4jserver import Graph
>>> from bulbs.model import Node,Relationship
>>> g = Graph()
>>> script = "g.v(vertex_id).out.count()"
>>> params = dict(vertex_id = 2)
>>> resp = g.gremlin.execute(script,params)
>>> resp.headers
>>> resp.content

loglevel をDEBUGinConfigに設定すると、各リクエストでサーバーに何が送信されているかを確認できます。DEBUGが有効な場合、Bulbsrawはオブジェクトの属性も設定します (オブジェクトに常に設定される属性Responseと混同しないでください)。生のサーバー応答が含まれます。rawResultResponse.raw

>>> from bulbs.neo4jserver import Graph, DEBUG
>>> from bulbs.model import Node,Relationship
>>> g = Graph()
>>> g.config.set_logger(DEBUG)
>>> script = " g.v(vertex_id).out.count()"
>>> params = dict(vertex_id = 2)
>>> resp = g.gremlin.execute(script,params)
>>> resp.raw

見る...

をオフDEBUGにするには、ログ レベルを に戻しますERROR

>>> from bulbs.neo4jserver import ERROR
>>> g.config.set_logger(ERROR)

見る...

于 2013-09-16T04:38:23.663 に答える