跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

使用 Python 将 CSV 数据导入 Neo4j 图数据库实战

综述由AI生成演示了利用 Python 脚本读取 CSV 格式的人物关系数据,通过 py2neo 库将其转换为节点与关系导入 Neo4j 图数据库。涵盖数据编码处理、环境依赖安装、连接测试及常见字符集错误解决方案,适合构建知识图谱的开发者参考。

DotNetGuy发布于 2026/4/6更新于 2026/6/919 浏览
使用 Python 将 CSV 数据导入 Neo4j 图数据库实战

一、准备数据

1.1 获取数据集

首先需要准备好待导入的 CSV 文件。这里以人物关系数据集为例,确保文件包含人物名称和关系类型两列。

1.2 检查文件编码

CSV 文件在读取时最容易遇到的坑就是编码问题。建议用记事本打开文件,查看是否包含非 ASCII 字符(如中文)。

1.3 另存为 UTF-8

如果文件不是 UTF-8 格式,请在保存时选择'UTF-8'编码。这一步至关重要,否则后续 Python 脚本会抛出 UnicodeDecodeError。

二、配置 Neo4j

2.1 创建数据库

启动 Neo4j Desktop 或 Docker 容器后,创建一个新的数据库实例。设置好数据库名称和管理员密码,建议密码强度适中以便记忆。

2.2 验证环境

启动服务后,进入 Browser 界面,执行以下 Cypher 语句确认数据库为空且连接正常:

match(n) return n;

如果没有返回任何节点,说明数据库初始化成功,可以开始导入。

三、搭建 Python 环境

3.1 项目初始化

在 PyCharm 或其他 IDE 中新建一个 Python 项目。为了管理依赖方便,建议使用虚拟环境。

3.2 安装依赖

打开 Terminal,安装必要的库。我们需要 pandas 处理表格,py2neo 操作图数据库。

pip install pandas py2neo

3.3 检查解释器

确保 IDE 中选择的 Python 解释器与终端一致,避免安装到系统环境而 IDE 未识别的情况。

四、编写导入脚本

4.1 连接测试

首先写一段简单的连接代码,验证网络通畅及凭据正确。注意修改其中的密码为你实际设置的值。

4.2 读取数据

使用 Pandas 读取 CSV 文件。记得指定 encoding='utf-8',防止乱码。

import pandas as pd

data = pd.read_csv('data.csv', encoding='utf-8')
print(data.head())

4.3 数据处理

遍历 DataFrame 的每一行,提取人物 A、关系、人物 B。我们将这些数据整理成元组列表,方便后续批量插入。

tuple_total = []
for index, row in data.iterrows():
    ties_total = [row['人物'], row['关系'], row['关系人物']]
    tuple_total.extend([ties_total])

4.4 创建节点

定义一个函数来批量创建节点。这里我们统一给节点打上 人物 标签。

 py2neo  Graph, Node

 ():
     name  people:
        node_1 = Node(, name=name)
        graph.create(node_1)
from
import
def
create_node
people
for
in
'人物'

调用该函数前,先确保已建立 graph 对象连接。

4.5 创建关系

节点存在后,下一步是建立它们之间的连线。利用 NodeMatcher 查找已存在的节点,然后创建关系。

from py2neo import Relationship, NodeMatcher

matcher = NodeMatcher(graph)
for i in range(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.6 结果验证

运行完脚本后,回到 Neo4j Browser,再次执行查询语句,观察是否有新的节点和关系出现。如果看到图谱结构生成,说明导入成功。

五、常见问题与解决

5.1 UnicodeDecodeError

如果在读取 CSV 时报错 'utf-8' codec can't decode byte...,这通常是因为文件编码不是 UTF-8。请回到第一步,重新将文件另存为 UTF-8 格式再试。

5.2 依赖冲突

如果安装 py2neo 失败,尝试升级 pip 或使用国内镜像源:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple py2neo

5.3 节点重复

如果多次运行脚本导致节点重复,可以在创建节点前先判断是否存在,或者清空数据库后再导入。

目录

  1. 一、准备数据
  2. 1.1 获取数据集
  3. 1.2 检查文件编码
  4. 1.3 另存为 UTF-8
  5. 二、配置 Neo4j
  6. 2.1 创建数据库
  7. 2.2 验证环境
  8. 三、搭建 Python 环境
  9. 3.1 项目初始化
  10. 3.2 安装依赖
  11. 3.3 检查解释器
  12. 四、编写导入脚本
  13. 4.1 连接测试
  14. 4.2 读取数据
  15. 4.3 数据处理
  16. 4.4 创建节点
  17. 4.5 创建关系
  18. 4.6 结果验证
  19. 五、常见问题与解决
  20. 5.1 UnicodeDecodeError
  21. 5.2 依赖冲突
  22. 5.3 节点重复
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • NewBie-image-Exp0.1 动漫 AI 绘画镜像快速入门
  • NewBie-image-Exp0.1 镜像快速入门与 XML 提示词实战
  • C++ 实现红黑树与 STL map 底层原理
  • OpenClaw 爆发推动低代码 AI 从工具赋能到生态重构
  • C++ 位图与布隆过滤器:原理与实现
  • MCP 实战:利用 Figma AI Bridge 自动生成前端代码
  • 混沌工程与性能测试联动:重塑系统稳定性防线
  • DataX 的两种部署方式以及 DataX-Web 可视化管理平台的搭建
  • TS-RAG:基于检索增强的时间序列基础模型零样本预测
  • 本地部署大模型 Ollama 安装与使用教程
  • OpenClaw Skills 合集开源,收录 700+ 本地化 AI Agent 插件
  • Mixtral 8X7B Instruct v0.1 llamafile 部署与应用实战指南
  • OpenClaw Skills 开源合集:700+ 本地化 AI Agent 技能插件
  • 零基础网络安全入门指南:学习路径与核心技能解析
  • PyCharm 接入 DeepSeek 实现 AI 辅助编程
  • PostgreSQL PostGIS 安装配置及现有数据库启用方法
  • C++ 继承中同名成员的隐藏与重载规则解析
  • 执行式 AI 核心:API 调用与网络请求实战
  • Python 包管理实战:pip 常用命令速查
  • 大厂程序员职业现状与成长路径深度解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online