实现Python将csv数据导入到Neo4j

实现Python将csv数据导入到Neo4j

目录

一、获取数据集

1.1 获取数据集

1.2 以“记事本”方式打开文件

1.3  另存为“UTF-8”格式文件

1.4 选择“是”

二、 打开Neo4j并运行

2.1 创建新的Neo4j数据库

2.2 分别设置数据库名和密码

​编辑 2.3 启动Neo4j数据库

2.4 打开Neo4j数据库

 2.5 运行查看该数据库是否为空

三、打开Python创建项目 

3.1 创建一个包,存项目

3.2 创建一个项目

3.3 检查自己的依赖是否完全

3.3.1 点击“File”-“Settings”

3.3.2  找到“Project:PythonProject”-"Python Interpreter"

3.4 导入相关依赖,打开Terminal

3.5 输入命令

四、实现Python连接Neo4j 

4.1 Python连接Neo4j测试

4.2 导入数据集

4.3 处理数据集

4.4 初始化neo4j并合并数据集关系

4.5 把节点导入到Neo4j中

4.6 运行代码后,查看Neo4j是否有节点

4.7 导入节点关系

4.8 查看Neo4j

五、该过程出现的Bug

5.1 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte 


一、获取数据集

1.1 获取数据集

《我是刑警》的人物关系数据集资源https://download.ZEEKLOG.net/download/Z0412_J0103/90160496

1.2 以“记事本”方式打开文件

1.3  另存为“UTF-8”格式文件

1.4 选择“是”

二、 打开Neo4j并运行

2.1 创建新的Neo4j数据库

2.2 分别设置数据库名和密码

 2.3 启动Neo4j数据库

2.4 打开Neo4j数据库

 2.5 运行查看该数据库是否为空

match(n) return n;

三、打开Python创建项目 

3.1 创建一个包,存项目

3.2 创建一个项目

3.3 检查自己的依赖是否完全

3.3.1 点击“File”-“Settings”

3.3.2  找到“Project:PythonProject”-"Python Interpreter"

检查是否导入了“neo4j”、“pandas”、”py2neo

3.4 导入相关依赖,打开Terminal

3.5 输入命令

pip install neo4j-python-driver pandas py2neo

四、实现Python连接Neo4j 

4.1 Python连接Neo4j测试



其中的”123456“是你刚刚建立的Neo4j密码,此处只需要修改该密码就可以了

4.2 导入数据集



其中地址需要改变,其它地方都不用变

运行结果如下

4.3 处理数据集



 执行结果如下

4.4 初始化neo4j并合并数据集关系

# 初始化一个空列表来存储所有的元组 tuple_total = [] # 迭代DataFrame的每一行 for index, row in invoice_data.iterrows(): ties_total = [row['人物'], row['关系'], row['关系人物']] # 将所有元组添加到结果列表中 tuple_total.extend([ties_total]) print(tuple_total)

4.5 把节点导入到Neo4j中

#把节点导入neo4j中 def create_node(people): for name in people: node_1 = Node('人物', name = name) graph.create(node_1) create_node(people)

4.6 运行代码后,查看Neo4j是否有节点

4.7 导入节点关系

matcher = NodeMatcher(graph) # 导入关系 for i in range(0, len(tuple_total)): name_1 = matcher.match('人物', name=tuple_total[i][0]).first() name_2 = matcher.match('人物', name=tuple_total[i][2]).first() rel = tuple_total[i][1] relationship = Relationship(name_1, rel, name_2) graph.create(relationship)

4.8 查看Neo4j

 

五、该过程出现的Bug

5.1 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte 

解决过程:

是因为你的CSV文件没有设置为”UTF-8“ ,具体过程看本文的1.2和1.3过程

上一篇文章:ZEEKLOG中群发功能及自动回复设置教程_ZEEKLOG粉丝群发https://blog.ZEEKLOG.net/Z0412_J0103/article/details/144074981下一篇文章: JDK11下载安装和配置超详细过程-ZEEKLOG博客https://blog.ZEEKLOG.net/Z0412_J0103/article/details/144451166?sharetype=blogdetail&sharerId=144451166&sharerefer=PC&sharesource=Z0412_J0103&spm=1011.2480.3001.8118

Read more

如何在服务器 Ubuntu 22.04 上部署 FastAPI + Uvicorn + Nginx 生产级 Python Web 服务指南

本文从基础环境准备、部署架构设计、性能调优、安全配置到监控指标采集,全流程讲解如何在 Ubuntu 22.04 服务器 上构建一个可用于生产环境的 FastAPI + Uvicorn + Nginx Python Web 服务平台。A5数据重点聚焦实战细节、系统参数配置、性能评测与问题排查方法,适合有一定 Linux / 网络 / Python 经验的开发与运维人员阅读。 一、目标架构与适用场景 在生产环境下,单纯使用 Uvicorn 监听外部请求存在性能和安全风险,因此我们采用如下部署架构: Internet │ ▼ Nginx (反向代理 + SSL/TLS) │ proxy_pass ▼ Uvicorn Workers (基于 uvloop + Gunicorn 管理) │ FastAPI Application │ PostgreSQL / Redis / 后端微服务 适用场景包括:

【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

🌹欢迎来到《小5讲堂》🌹 🌹这是《小程序》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹 👨💻 作者简介 🏆 荣誉头衔:2024博客之星Top14 | ZEEKLOG博客专家 | 阿里云专家博主 🎤 经历:曾多次进行线下演讲,亦是 ZEEKLOG内容合伙人 以及 新星优秀导师 💡 信念:“帮助别人,成长自己!” 🚀 技术领域:深耕全栈,精通 .NET Core (C#)、Python、Java,熟悉主流数据库 🤝 欢迎交流:无论是基础概念还是进阶实战,都欢迎与我探讨! 目录 * 前言 * 解决过程 * 一、错误场景还原 * 1.1 错误发生的位置 * 1.2 常见的触发场景 * 二、深入理解 Vue

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

目录 1. 打开浏览器开发者工具 2. 使用 Network 面板 3. 查看具体的API请求 a. Headers b. Payload c. Response d. Preview e. Timing 4. 实际操作步骤 5. 常见问题及解决方法 a. 无法看到API请求 b. 请求失败 c. 跨域问题(CORS) 作为一名后端工程师,理解前端如何调用接口、传递参数以及接收返回值是非常重要的。下面将详细介绍如何通过浏览器开发者工具(F12)查看和分析这些信息,并附带图片案例帮助你更好地理解。 1. 打开浏览器开发者工具 按下 F12 或右键点击页面选择“检查”可以打开浏览器的开发者工具。常用的浏览器如Chrome、Firefox等都内置了开发者工具。下面是我选择我的一篇文章,打开开发者工具进行演示。 2. 使用

Flutter Web 开发:解决跨域(CORS)问题的终极指南

Flutter Web 开发:解决跨域(CORS)问题的终极指南

Flutter Web 开发:解决跨域(CORS)问题的终极指南 在 Flutter Web 开发过程中,默认情况下浏览器会遵循同源策略。当你的应用尝试加载不同域名的网络资源(如 API 接口、图片等)时,经常会遇到 CORS(跨域资源共享) 错误,导致请求失败。 虽然生产环境应由后端配置 CORS 头来解决,但在本地开发和调试阶段,我们可以通过修改 Flutter 工具链源码来临时禁用浏览器的安全策略,从而顺利调试。 以下是详细的操作步骤: 🛠️ 操作步骤 第一步:定位 chrome.dart 文件 首先,你需要找到 Flutter SDK 中负责启动 Chrome 浏览器的配置文件 chrome.dart。 参考路径(请根据你的实际安装路径调整): <你的