Python中py2neo库的基本使用方法

这篇具有很好参考价值的文章主要介绍了Python中py2neo库的基本使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

因为需要将处理好的csv文件用neo4j存储,因此想到使用python将数据导入neo4j,就需要用到py2neo库。

安装py2neo库:

pip install py2neo

首先是建立连接:

from py2neo import Node, Relationship, Graph, NodeMatcher, RelationshipMatcher
# 打开数据库
graph = Graph("http://localhost:7474/", auth=("neo4j", "123456"))

注意:这里传入用户名和密码使用的auth元组形式

建立简单的关系图

a = Node("Person", name="Alice", sex="female", ID="222")
b = Node("Person", name="Bob", sex="male", ID="123")
ab = Relationship(a, "KNOWS", b)
graph.create(ab)

Node和Relationship可以定义对应的实例,Node第一个参数是label, 再利用graph.create()创建。打开neo4j可以看到如下图:
Python中py2neo库的基本使用方法,Python,人工智能,数据库,python,知识图谱,开发语言

可以看到已经建立成功。

查询

查询的类型通常就是查询节点和关系,对应的就是NodeMatcher, RelationshipMatcher两个类:

macher1 = NodeMatcher(graph)
macher2 = RelationshipMatcher(graph)
node1 = macher1.match("Person", ID="123")  # 匹配ID为123的节点
node2 = macher2.match(r_type="KNOWS").limit(25)  # 找出关系类型为KNOWS的前25个关系

result1 = list(node1)
print(result1)
result2 = list(node2)
print(result2)

运行结果如下:
Python中py2neo库的基本使用方法,Python,人工智能,数据库,python,知识图谱,开发语言
下面就用一个实例来演示用python建立neo4j:

实例

创建节点

创建节点的函数:

# 建立一个节点
def create_node(graph, label, attrs):
    n = "_.name=" + "\"" + attrs["name"] + "\""
    matcher = NodeMatcher(graph)
    # 查询是否已经存在,若存在则返回节点,否则返回None
    value = matcher.match(label).where(n).first()
    # 如果要创建的节点不存在则创建
    if value is None:
        node = Node(label, **attrs)
        n = graph.create(node)
        return n
    return None

然后创建两个节点:

label1 = "Stock"
attrs1 = {"name": "招商银行", "code": "600036"}
label2 = "SecuritiesExchange"
attrs2 = {"name": "上海证券交易所"}
create_node(graph, label1, attrs1)
create_node(graph, label2, attrs2)

结果如下:
Python中py2neo库的基本使用方法,Python,人工智能,数据库,python,知识图谱,开发语言

创建关系

这里需要用到两个函数:

# 建立两个节点之间的关系
def create_relationship(graph, label1, attrs1, label2, attrs2, r_name):
    value1 = match_node(graph, label1, attrs1)
    value2 = match_node(graph, label2, attrs2)
    if value1 is None or value2 is None:
        return False
    r = Relationship(value1, r_name, value2)
    graph.create(r)


# 查询节点
def match_node(graph, label, attrs):
    n = "_.name=" + "\"" + attrs["name"] + "\""
    matcher = NodeMatcher(graph)
    return matcher.match(label).where(n).first()

然后在主函数中添加如下语句:

r = "证券交易所"
create_relationship(graph, label1, attrs1, label2, attrs2, r)

即创建成功:
Python中py2neo库的基本使用方法,Python,人工智能,数据库,python,知识图谱,开发语言

修改结点属性值

有时候我们需要更新结点的属性值,或者添加新的属性,可以使用如下方法。

首先对于名为上海证券交易所的结点,其属性值只有name这一个属性:
Python中py2neo库的基本使用方法,Python,人工智能,数据库,python,知识图谱,开发语言
然后我们尝试修改其属性值并添加一个名为addr的属性:

label2 = "SecuritiesExchange"
attrs2 = {"name": "上海证券交易所"}
node = match_node(graph, label2, attrs2)  # 找到对应的结点
node.update({"name": "北交所", "addr": "北京"})  # 修改结点的属性
graph.push(node)  # 更新结点,注意:如果没有这一步,则结点不会被更新

运行之后,我们再来查看可以得到如下截图:
Python中py2neo库的基本使用方法,Python,人工智能,数据库,python,知识图谱,开发语言文章来源地址https://www.toymoban.com/news/detail-597233.html

到了这里,关于Python中py2neo库的基本使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 知识图谱之py2neo

    介绍 Py2neo是一个客户端库和工具包,用于从Python应用程序和命令行使用Neo4j(Neo4j Graph Data Platform | Graph Database Management System)。该库同时支持 Bolt 和 HTTP,并提供高级 API、OGM、管理工具、交互式控制台、Pygments 的 Cypher 词法分析器以及许多其他功能。 安装 注:Neo4j也需要安装

    2024年02月11日
    浏览(39)
  • 探索Py2neo:Python与Neo4j图数据库的交互实践

    在数据驱动的世界中,图形数据库如Neo4j成为处理复杂关系数据的强大工具。这种数据库类型以图结构存储数据,优秀地表示和查询实体间的连接关系。Py2neo,作为Neo4j的Python驱动程序,使得在Python环境中使用Neo4j变得简单而直观。以下内容,将详细介绍如何利用Py2neo在Python中

    2024年03月11日
    浏览(50)
  • py2neo创建知识图谱合并结点

    上篇文章简单的构造了一个知识图谱,但是其中包含了许多重复的结点,看起来也非常乱,不清晰。科学上网之后,发现了一个 apoc 的工具,关于 apoc 是什么如何安装,这篇文章有很好的介绍 Neo4j:入门基础(三)之APOC插件_Dawn_www的博客-CSDN博客_apoc neo4j,应下载与neo4j相应版

    2023年04月12日
    浏览(86)
  • py2neo和neo4j

    py2neo 和 neo4j 是两个 Python 中与 Neo4j 图数据库交互的库,但它们有不同的设计和使用方式。 py2neo : 类型 : py2neo 是一个面向对象的库, 提供了一个对象模型 ,使得与 Neo4j 数据库的交互 更加 Pythonic 。 API 风格 : 使用 Node 和 Relationship 对象表示图数据库中的节点和关系,使得代码

    2024年02月21日
    浏览(44)
  • 知识图谱:py2neo将csv文件导入neo4j

    安装py2neo 安装 python 中的 neo4j 操作库: pip install py2neo 安装 py2neo 后我们可以使用其中的函数对 neo4j 进行操作。 图数据库 Neo4j 中最重要的就是结点和边(关系),结点之间靠边联系在一起,每个结点也有属于自己的属性。 也就是说我们在用 pyhton 操作 Neo4j 的时候只需要创造

    2024年02月20日
    浏览(43)
  • 关于5.x版本的Neo4j与py2neo的访问技巧

    先说结果。 Neo4j是可以使用py2neo来操作的。而且网上搜到的教程和方法里,首推的http连接方法可能并不是最好的,应该用 bolt 方法可能更好。 对于大多数使用  py2neo  与 Neo4j 数据库进行交互的应用程序来说,建议使用 Bolt 协议(即第二个指令)。确保您的 Neo4j 服务器配置

    2024年04月26日
    浏览(53)
  • 【知识图谱】python连接neo4j报错:py2neo.errors.ProtocolError: Cannot decode response content as JSON

    源代码如下 报错信息: 从graph.run这里报错,报出一个JSon相关的错误,百思不得其解。 解决方法: 需要加上一个name=“neo4j”,才能成功,如下 或者这样 完整demo

    2024年02月11日
    浏览(45)
  • SySeVR环境配置:joern-0.3.1、Neo4j-2.1.5、py2neo2.0

    最近希望在基于图神经网络的漏洞检测上有所推进,准备复现文章SySeVR: A Framework for Using Deep Learningto Detect Software Vulnerabilities开源代码,基本环境配置是python库环境以及joern-0.3.1、Neo4j-2.1.5环境的配置,环境具体要求如下 假期的时候就已经完成过joern的配置,光是安装就卡了我

    2023年04月08日
    浏览(36)
  • 知识图谱实战应用22-数据导入技巧与基于py2neo的金融领域风险评估的应用

    大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用22-数据导入技巧与基于py2neo的金融领域风险评估的应用。本文的金融领域风险评估的应用旨在利用知识图谱技术对金融风险进行评估和管理。该项目利用py2neo库与Neo4j图数据库进行交互,构建一个金融领域的知识图谱

    2024年02月15日
    浏览(30)
  • Neo4j企业版报错:py2neo.errors.ProtocolError: Cannot decode response content as JSON

    环境为neo4j-enterprise-5.1.0、py2neo、Neo4j Desktop-1.5.2 根据堆栈追踪,我们发现self.graph.name为空,而self.graph为Graph(\\\"http://localhost:7474/ \\\") 所以我们自己修改源码 打开python的包的安装位置: X:*****PythonPython37Libsite-packagespy2neodatabase.py 原来的代码: (990行左右) 更改后的代码:

    2024年02月12日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包