4

これらのドキュメントを使用して、Neo4j python-embedded でグラフを作成しようとしています: http://docs.neo4j.org/chunked/snapshot/python-embedded-reference-core.html "許可され​​たプロパティ値には、文字列、数値、ブール値が含まれます、およびそれらのプリミティブの配列」. そのため、文字列のリストを作成してから、リストを追加しようとしています。

from neo4j import GraphDatabase
db = GraphDatabase('/home/username/Neo4j/')
with db.transaction:
    testNode = db.node()
    testNode['stringList'] = ["one","two"]
    string_list_edit = testNode['stringList']
    string_list_edit.append("three")

このエラーが表示されます:

AttributeError: 'java.lang.String[]' object has no attribute 'append'

これはどのように行われますか?

4

2 に答える 2

1

すべてのコードを貼り付けると、他のエラーについて評価することができます。ドキュメントをチェックしてください: http://docs.neo4j.org/chunked/snapshot/python-embedded-reference-core.html

含んでいますか?

with db.transactions:

あなたのコードの前に?あなたはそれをしなければなりません。また、これを試してください:

testNode['stringList'] = ["one","two"]
string_list_edit = testNode['stringList']
string_list_edit.append("three")
testNode['stringList'] = string_list_edit
于 2012-04-13T19:18:07.383 に答える
1

まあ、エラーはそれをすべて言います。そのオブジェクトにはメソッドがありませんappend()

なんで?私の最初の考えは、実際の Python リストではなく、Java と Python の間の変換を処理するブリッジ オブジェクト ("java.lang.String[]" は Java の String 配列型) であるということです。リストにしてみる

string_list_edit = list(testNode['stringList'])
string_list_edit.append("three")

うまくいけば、設定しても同じように機能します。

Python の append とまったく+=同じではないと思います。リストを使用していないときは、奇妙な橋オブジェクトを操作することを文字通り意味するか、おそらくそれを確認できると思います。+=string_list_edit = string_list_edit + "three"string_list_edit = string_list_edit + ["three"]

print type(testNode['stringList'])ブリッジオブジェクトの理論を確認する簡単な方法 - aまたは類似のものを試してください。

于 2012-04-20T18:46:22.183 に答える