python操作neo4j

1.准备内容

python版本:3.9
neo4j版本:4.2.11
py2neo库版本:4.3.0

安装代码:

pip install py2neo==4.3.0 -i https://pypi.douban.com/simple
pandas库
注意:如果版本有问题,程序可能会报错

2.代码编写

  • 引库
from py2neo import *
import pandas as pd
  • 连接neo4j数据库
graph = Graph('http://127.0.0.1:7474',username="用户名",password="密码")

或者这样写

graph = Graph("http://127.0.0.1:7474",auth=("账号","密码"))
  • 定义函数
    数据集连接:https://pan.baidu.com/s/1lGC1vSt2q9fUfKHfkD2wwg
    提取码:xtxy
    数据集内的内容
    在这里插入图片描述
def yogadata():
    frame = pd.read_csv(r"文件存放文件夹的路径/文件名.csv",encoding='gbk')    #读取文件
    for i in frame.index:
        yoga_name = frame["招式"].values[i]
        yoga_ms = frame["描述"].values[i]
        yoga_yc = frame["益处"].values[i]
        yoga_zysx = frame["注意事项"].values[i]
        yoga_cjwt = frame["常见问题"].values[i]

        yoga_name = str(yoga_name) #将数据转化为str类型
        yoga_ms = str(yoga_ms)
        yoga_yc = str(yoga_yc)
        yoga_zysx = str(yoga_zysx)
        yoga_cjwt = str(yoga_cjwt)

		#节点创建
        yoga_node = Node('招式',name=yoga_name)
        graph.merge(yoga_node,'招式','name')    #merge方法将重复的元素去掉
        ms_node = Node('描述',name=yoga_ms)
        yc_node = Node('益处',name=yoga_yc)
        zysx_node = Node('注意事项', name=yoga_zysx)
        cjwt_node = Node('常见问题', name=yoga_cjwt)

		#创建节点间的关系
        yoga_2 = Relationship(yoga_node, '描述', ms_node)
        yoga_3 = Relationship(yoga_node, '益处', yc_node)
        yoga_4 = Relationship(yoga_node, '注意事项', zysx_node)
        yoga_5 = Relationship(yoga_node, '常见问题', cjwt_node)

		#开始创建操作
        try:
            graph.create(yoga_2)
        except:
            continue
        try:
            graph.create(yoga_3)
        except:
            continue
        try:
            graph.create(yoga_4)
        except:
            continue
        try:
            graph.create(yoga_5)
        except:
            continue

3.遇到的问题

  • 出现 OverflowError: mktime argument out of range问题(降低版本前)
    “Clock.local_offset = Clock(-int(mktime(gmtime(0))))”在windows系统存在内存溢出
    打开项目文件夹,打开 lib\site-packages\interchange\time.py
    修改1427行的代码
Clock.local_offset = Clock(-int(mktime(gmtime(0))))


在这里插入图片描述
即可解决问题

注意:降低版本后我试了一下把这里的代码改回去,发现也可以跑,不知道是版本原因还是上面说的系统溢出的原因

-出现 ValueError: Primary label and primary key are required for MERGE operation问题
当前版本的py2neo的merge函数需要提供三个参数,之前报错的代码为

graph.merge(yoga_node) 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值