当前位置: 首页 > news >正文

python上测试neo4j库

安装完了neo4j库后,如何使用。用python来小试牛刀

1.从其他博客上找来demo

#coding:utf-8
from py2neo import Graph,Node,Relationship##连接neo4j数据库,输入地址、用户名、密码
graph = Graph('bolt://xx.xx.xx.xx:7687',user='neo4j',password='neo4j1234')##创建结点
test_node_1 = Node('ru_yi_zhuan',name='皇帝')
test_node_2 = Node('ru_yi_zhuan',name='皇后')
test_node_3 = Node('ru_yi_zhuan',name='公主')
graph.create(test_node_1)
graph.create(test_node_2)
graph.create(test_node_3)##创建关系
#分别建立了test_node_1指向test_node_2和test_node_2指向test_node_1两条关系,关系的类型为"丈夫、妻子",两条关系都有属性count,且值为1。
node_1_zhangfu_node_1 = Relationship(test_node_1,'丈夫',test_node_2)
node_1_zhangfu_node_1['count'] = 1
node_2_qizi_node_1 = Relationship(test_node_2,'妻子',test_node_1)
node_2_munv_node_1 = Relationship(test_node_2,'母女',test_node_3)node_2_qizi_node_1['count'] = 1graph.create(node_1_zhangfu_node_1)
graph.create(node_2_qizi_node_1)
graph.create(node_2_munv_node_1)print(graph)
print(node_1_zhangfu_node_1)
print(node_2_qizi_node_1)
print(node_2_munv_node_1)

python运行

vscode中如何配置python环境,还是搜其他博客吧。

每执行一次python,就会在neo4j库中新增一条数据。

要想在库中显示出拓扑关系,服务是要启动起来的。

 

 查看库中记录

5条数据,10个节点。

遇到的问题:

1.版本问题

the following setting are not supported :%r % other.  setting are not support {'username':'noe4j'}

解决方案:

我的版本中,在环境上升级了neo4j,同时将username改为了user。启动成功。

遇到这个错误 the following setting are not supported : %r % other. setting are not support {'username':'noe4j'} 时,通常是因为你正在使用 py2neo 并尝试通过不正确的格式传递配置选项。这个问题可能涉及到 Neo4j 的身份验证设置,或者是库的版本不匹配。py2neo 在不同版本之间可能会有不同的配置方法,特别是与连接字符串、身份验证和设置相关的部分。常见解决方案
1. 确保正确传递身份验证信息
在较新版本的 py2neo 中,连接字符串和认证信息的传递方式可能发生了变化。以下是一些常见的设置方法:旧版 py2neo 设置方式:
python
from py2neo import Graph# 如果使用的是较老的 py2neo 版本,通常会用类似这样的方式
graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
新版 py2neo 设置方式:
如果你使用的是 py2neo 的较新版本,可以按以下方式进行连接:python
from py2neo import Graph# 在新版本的 py2neo 中,连接信息可能需要如下传递
graph = Graph("bolt://localhost:7687", user="neo4j", password="password")
注意:确保 "neo4j" 和 "password" 替换为你自己的 Neo4j 数据库的用户名和密码。
bolt 协议是 Neo4j 的默认协议,确保你的 Neo4j 数据库正在使用 bolt。
2. 升级 py2neo
如果你使用的是较老版本的 py2neo,它可能不完全支持新的身份验证和连接方式。可以尝试升级到最新版本:bash
pip install --upgrade py2neo
3. 检查 Neo4j 配置
如果你使用的是 Neo4j 版本 4.x 及更高版本,它引入了新的身份验证机制,要求你在连接时明确提供用户名和密码。新版 Neo4j 的配置示例:
python
from py2neo import Graph# 连接 Neo4j 4.x 或更高版本的数据库
graph = Graph("bolt://localhost:7687", auth=("neo4j", "your_password"))
确保 your_password 被替换为正确的密码。4. 完整示例
确保使用的代码像下面这样:python
from py2neo import Graph# 连接到本地的 Neo4j 实例(Neo4j 4.x及更高版本)
graph = Graph("bolt://localhost:7687", user="neo4j", password="your_password")# 运行查询示例
data = graph.run("MATCH (n) RETURN n LIMIT 5")
for record in data:print(record)
5. 检查 Neo4j 服务器状态
如果你已经确认代码无误,且依然无法连接,检查你的 Neo4j 服务器是否已启动,并且监听在正确的端口(默认为 7687)。如果没有启动,可以使用以下命令启动 Neo4j:在本地:通过 Neo4j Desktop 或命令行启动。
Docker:如果你使用的是 Docker,确保容器正在运行。
总结
确保你正确传递 user 和 password 信息。
使用最新版本的 py2neo。
使用正确的协议和端口(bolt://localhost:7687)。
确保 Neo4j 数据库正常运行。

2.语法问题

创建节点时的问题

##创建结点

test_node_1 = Node(label='ru_yi_zhuan',name='皇帝')
test_node_2 = Node(label='ru_yi_zhuan',name='皇后')
test_node_3 = Node(label='ru_yi_zhuan',name='公主')

解决方案

Node 标签的用法:在 py2neo 中,Node 对象的标签应该传递一个标签列表,而不是传递 label='xxx'。如果你想设置一个标签,应该传递一个包含标签名称的列表。正确的语法应该是 Node("ru_yi_zhuan", name="皇帝"),其中 "ru_yi_zhuan" 就是标签。参数命名:Node 对象的标签参数是通过位置传递的,不需要用 label='...' 的方式来定义,而是直接通过第一个参数传递标签(或者多个标签)。其他属性应该通过关键字参数传递。修改后的代码如下:python
from py2neo import Graph, Node, Relationship# 连接 Neo4j 数据库,输入地址、用户名、密码
graph = Graph('bolt://10.15.32.71:7687', user='neo4j', password='neo4j1234')# 创建节点
test_node_1 = Node('ru_yi_zhuan', name='皇帝')
test_node_2 = Node('ru_yi_zhuan', name='皇后')
test_node_3 = Node('ru_yi_zhuan', name='公主')# 可以选择将节点添加到图中
graph.create(test_node_1)
graph.create(test_node_2)
graph.create(test_node_3)
解释:
Node('ru_yi_zhuan', name='皇帝'): 'ru_yi_zhuan' 是节点的标签,name='皇帝' 是节点的属性。
graph.create(test_node_1):将节点添加到数据库中。你可以创建关系来连接这些节点,或者仅仅保存节点本身。
小建议:
标签:如果你打算给多个节点使用相同的标签 'ru_yi_zhuan',这完全没问题,表示这些节点属于同一类别。
关系:如果你需要创建节点间的关系,可以使用 Relationship 类来建立。
例如,创建一对父子关系:python
# 创建关系
relationship = Relationship(test_node_1, '父亲', test_node_3)# 保存关系
graph.create(relationship)
这样可以根据需求进一步建立节点之间的连接。

相关文章:

  • python练习:求两数相加之和
  • Java并发探索--上篇
  • 智能座舱架构中芯片算力评估
  • 2025系统架构师---管道/过滤器架构风格
  • 【强化学习系列】贝尔曼最优方程
  • SQL常用数据清洗语句
  • Python初学 有差异的知识点总结(一)
  • 如何开展有组织的AI素养教育?
  • kubernetes常用命令 k8s指令大全
  • Oracle备份和恢复
  • 政务大模型的春天,AI办公先萌芽
  • 【软件工程】面向对象编程(OOP)概念详解
  • if consteval
  • 9. 使用Gazebo和Rviz显示机器人(包括运动控制,雷达,摄像头仿真以及显示)
  • yum install 失败
  • 政策支持与市场驱动:充电桩可持续发展的双轮引擎
  • cmake qt 项目编译
  • 亚马逊环保标识运营指南:抢占流量新赛道的6大策略解析
  • 对话式 BI:让数据洞察从“专业门槛”变为“对话本能”
  • 【Keil5-开发指南】
  • 临港迎来鸿蒙智行“尚界”整车及电池配套项目,首款车型今秋上市
  • 我国将开展市场准入壁垒清理整治行动
  • 法治日报调查直播间“杀熟”乱象:熟客越买越贵,举证难维权不易
  • 10台核电新机组获核准,上海核电厂商独揽超500亿元订单
  • 吕国范任河南省人民政府副省长
  • 脱发后怎么把头发养回来?脱发自救指南来了