You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中直接创建Memgraph节点?含CREATE与MERGE等效实现

在Python中实现Memgraph的CREATE和MERGE操作

要在Python中操作Memgraph,首先需要安装官方Python客户端库mgclient,执行pip install mgclient完成安装后,即可通过执行Cypher语句或封装函数实现节点的创建与合并。

1. 建立Memgraph连接

先完成与Memgraph实例的连接,示例代码如下:

import mgclient

# 连接本地Memgraph实例(默认端口为7687)
connection = mgclient.connect(host='127.0.0.1', port=7687)
cursor = connection.cursor()

2. 等效Cypher CREATE语句的实现

CREATE语句用于创建新节点,无论目标节点是否已存在,在Python中有两种常用实现方式:

直接执行Cypher语句

直接编写对应Cypher并执行,对应你给出的示例:

# 对应 Cypher: CREATE (:City {name: 'London'});
cursor.execute("CREATE (:City {name: 'London'})")
connection.commit()

参数化查询(推荐)

使用参数化查询可避免注入风险,同时提升代码复用性:

city_name = 'London'
cursor.execute("CREATE (:City {name: $name})", {'name': city_name})
connection.commit()

3. 等效Cypher MERGE语句的实现

MERGE语句会检查节点是否存在,存在则匹配该节点,不存在则创建新节点,实现方式与CREATE类似:

直接执行Cypher语句

对应你给出的MERGE示例:

# 对应 Cypher: MERGE (:City {name: 'Dublin'});
cursor.execute("MERGE (:City {name: 'Dublin'})")
connection.commit()

参数化查询

city_name = 'Dublin'
cursor.execute("MERGE (:City {name: $name})", {'name': city_name})
connection.commit()

4. 封装函数直接创建/合并节点

如果需要重复创建节点,可封装通用函数简化操作:

创建节点的通用函数

def create_node(label, properties):
    # 生成参数化属性子句
    props_clause = ", ".join([f"{key}: ${key}" for key in properties])
    query = f"CREATE (:{label} {{{props_clause}}})"
    cursor.execute(query, properties)
    connection.commit()

# 使用示例:创建带多属性的城市节点
create_node('City', {'name': 'Paris', 'country': 'France', 'population': 2161000})

合并节点的通用函数

def merge_node(label, properties):
    props_clause = ", ".join([f"{key}: ${key}" for key in properties])
    query = f"MERGE (:{label} {{{props_clause}}})"
    cursor.execute(query, properties)
    connection.commit()

# 使用示例:合并或创建指定城市节点
merge_node('City', {'name': 'Berlin', 'country': 'Germany'})

注意事项

  • 所有写操作执行后必须调用connection.commit()才能生效;
  • 操作完成后记得关闭游标和连接,避免资源泄漏:
cursor.close()
connection.close()

内容的提问来源于stack exchange,提问作者KWriter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:25:41