树莓派neo4j在noe4j中将csv文件添加节点

参考前序教程:Raspberry Pi上使用pip来安装py2neo,pip install py2neoerror: externally-managed-environment-CSDN博客

再次进入时

  1. 激活虚拟环境: 进入您创建的虚拟环境目录:

    复制代码
    cd venv

    然后激活环境:

    复制代码
    source bin/activate

    激活后,您将看到命令提示符前面有一个(venv)前缀,这表示您现在正在虚拟环境中。

导入程序代码如下:csv需要多行多列,

python 复制代码
from py2neo import Node, Relationship, Graph, NodeMatcher
# 导入py2neo库中的相关类,用于操作Neo4j图数据库

uri = "bolt://localhost:7687"  
# Neo4j数据库的连接URI
username = "neo4j"  
# Neo4j数据库的用户名
password = "123456cys"
# Neo4j数据库的密码
graph = Graph(uri, auth=(username, password))
# 创建Graph对象,用于连接和操作Neo4j数据库

path = "/home/pi/python_neo4j/oil0813.csv"  
# 要读取的CSV文件路径
with open(path, 'r', encoding='utf-8') as file:  #如果不是utf-8编码,需要转换成utf-8编码,可使用notepad++
    lines = file.readlines()
# 打开并读取CSV文件内容到lines列表中

con = list()
# 初始化一个空列表,用于存储处理后的数据
zh=['ViolationID', 'Symbol', 'DisposalDate', 'DeclareDate', 'ShortName', 'CoFullName', 'Promulgator', 'FileName', 'DocumentNumber', 'Supervisor', 'ViolationType', 'ViolationTypeID', 'Law', 'ViolationYear', 'Activity', 'PunishmentMeasure', 'SumPenalty', 'IsViolated', 'PunishmentType', 'PunishmentTypeID', 'Penalty']
# 定义一个列表,包含CSV文件中各列的标题

for j in lines:
    try:
        a = j.replace("\t","").strip('\n').split(",")
        # 将每一行数据中的制表符替换为空格,去除换行符,然后按逗号分割成列表
        a = [i for i in a] # 保持数据为字符串类型
        # 将处理后的数据添加到con列表中
        con.append(a)
    except:
        continue
    # 如果处理过程中出现异常,则跳过当前循环

for j in con:
    try:
        selector = NodeMatcher(graph)
        # 创建NodeMatcher对象,用于匹配节点

        # 创建第一个节点(如果不存在)
        entity1 = selector.match(j[1], name = j[0])
        if len(list(entity1)) == 0:
            entity1_node = Node(j[1], name = j[0])
            graph.create(entity1_node)
        else:
            pass

        # 创建第二个节点(如果不存在)
        entity3 = selector.match(j[3], name = j[4])
        if len(list(entity3)) == 0:
            entity3_node = Node(j[3], name = j[4])
            graph.create(entity3_node)
        else:
            pass

        # 创建两个节点之间的关系
        e1_node = graph.nodes.match(j[1], name = j[0]).first()
        e2_node = graph.nodes.match(j[3], name = j[4]).first()
        e12 = Relationship(e1_node, j[2], e2_node)
        graph.create(e12)
    except:
        continue
    # 如果创建节点或关系过程中出现异常,则跳过当前循环

print("ok1")
# 打印"ok1",表示程序执行完成

快10万节点了

相关推荐
麦麦大数据4 小时前
F033 vue+neo4j图书智能问答+知识图谱推荐系统 |知识图谱+neo4j+vue+flask+mysql实现代码
vue.js·flask·nlp·neo4j·智能问答·图书·1024程序员节
长桥夜波1 天前
机器学习日报02
人工智能·机器学习·neo4j
麦麦大数据2 天前
D027 v2 vue+django+neo4j 基于知识图谱红楼梦问答系统 (新增问关系功能;新增知识节点和关系管理功能,neo4j增删改查功能)
vue.js·django·问答系统·知识图谱·neo4j·图谱管理·neo4j增删改查
青花瓷3 天前
neo4j的基础安装及简单实例
neo4j
不吃香菜的小趴菜3 天前
neo4j密码忘记如何解决
知识图谱·neo4j
问问计算机6 天前
2.Neo4j是什么?
neo4j
羊羊小栈6 天前
基于知识图谱(Neo4j)和大语言模型(LLM)的图检索增强(GraphRAG)的台风灾害知识问答系统(vue+flask+AI算法)
人工智能·毕业设计·知识图谱·创业创新·neo4j·毕设·大作业
FserSuN6 天前
GraphRAG 与 Neo4j 社区版:能力边界与适用场景学习总结
学习·neo4j
掘金安东尼8 天前
深入 Neo4j:从图数据库原理到企业知识引擎的实践指南
数据库·neo4j
熊文豪8 天前
Windows安装Neo4j保姆级教程(图文详解)
neo4j