簡體   English   中英

Py2Neo:graph.cypher.execute()

[英]Py2Neo: graph.cypher.execute()

有什么方法可以使此功能更美觀/更易讀嗎? (例如,格式化字符串,以便我沒有“創建..” +標簽+“ ...”)

from py2neo import Graph

graph = Graph()

def create_node(label, properties):
    """Create a note with the label-type and some properties"""
    graph.cypher.execute("CREATE (p:" + label + " " + properties + ")")

create_node("Person", "{name: 'Alice', age: '22'}")

您是否考慮過使用py2neo的內置方法? 你會做

from py2neo import Node
alice = Node("Person", name="Alice", age=22)

如果您確實想使用Cypher,則由於您無法參數化標簽,因此使用起來會有些笨拙。 我還建議傳遞Python dict作為屬性而不是字符串:

def create_node(label, properties):
    query = "CREATE (:{}".format(label) + " {properties})"
    params = dict(properties=properties)
    graph.cypher.execute(query, params)

create_node("Person", {"name":"Alice","age":22})

"CREATE (:{} {})".format(label, properties)不起作用的原因是,字典的鍵將用引號引起來,這是無效的Cypher。 例如:

>>> d = dict(name="Alice",age=22)
>>> label = "Person"
>>> "CREATE (:{} {})".format(label, properties)
"CREATE (:Person {'age': 22, 'name': 'Alice'})"

這將引發錯誤,因為有效的Cypher將是:

"CREATE (:Person {age: 22, name: 'Alice'})"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM