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

Python 将 CSV 数据导入 Neo4j 实战

使用 Python 脚本将 CSV 格式的人物关系数据导入 Neo4j 图数据库。流程涵盖数据预处理(UTF-8 编码)、Neo4j 环境初始化、Python 依赖安装(pandas, py2neo)、连接数据库、遍历数据创建节点与关系,以及验证导入效果。针对常见的编码报错问题提供了解决方案。

协议工匠发布于 2026/4/11更新于 2026/9/263 浏览
Python 将 CSV 数据导入 Neo4j 实战

一、准备数据

首先需要准备好待导入的 CSV 数据集。为了保证后续 Python 脚本能正常读取,务必确认文件编码格式为 UTF-8。

  1. 使用文本编辑器(如记事本)打开 CSV 文件。
  2. 选择'另存为',在编码选项中选择'UTF-8'。
  3. 保存时若提示是否覆盖,确认即可。

这一步非常关键,否则后续运行代码时极易出现 UnicodeDecodeError 错误。

二、Neo4j 环境配置

确保 Neo4j 数据库已安装并处于运行状态。

  1. 启动 Neo4j 服务。
  2. 登录 Neo4j Browser。
  3. 执行基础查询验证连接是否正常:
match(n) return n;

如果返回空结果集或报错,请检查数据库服务是否成功启动。

三、Python 项目搭建

在本地开发环境中创建 Python 项目,并配置必要的依赖库。

  1. 新建一个 Python 包或项目文件夹。

  2. 检查解释器设置,确保安装了以下核心库:

    • neo4j-python-driver
    • pandas
    • py2neo
  3. 通过终端安装依赖(以 pip 为例):

pip install neo4j-python-driver pandas py2neo

安装完成后,建议在终端再次确认版本无误。

四、代码实现与数据导入

接下来编写 Python 脚本,完成从 CSV 读取到图数据库写入的全过程。

1. 连接测试

首先建立与 Neo4j 的连接。注意修改代码中的密码为你实际设置的数据库密码。

from py2neo import Graph, Node, Relationship

# 替换为你的实际地址和密码
graph = Graph("bolt://localhost:7687", auth=("neo4j", "你的密码"))

2. 读取与处理数据

使用 pandas 读取 CSV 文件,并将其转换为便于遍历的结构。

import pandas as pd

# 读取 CSV 文件,请根据实际路径修改
invoice_data = pd.read_csv("your_file.csv")

# 初始化列表存储元组
tuple_total = []
for index, row in invoice_data.iterrows():
    ties_total = [row['人物'], row['关系'], row['关系人物']]
    tuple_total.extend([ties_total])

print(tuple_total)

3. 创建节点

遍历数据,将人物信息作为节点写入数据库。

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

# 提取所有人物名称
people_list = list(invoice_data['人物'])
create_node(people_list)

4. 创建关系

节点创建完毕后,需要根据 CSV 中的关系字段建立连接。

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_type = tuple_total[i][1]
    
    if name_1 and name_2:
        relationship = Relationship(name_1, rel_type, name_2)
        graph.create(relationship)

5. 验证结果

运行完上述代码后,回到 Neo4j Browser 查看是否有新的节点和边生成。你可以再次运行 match(n) return n; 来确认数据量。

五、常见问题处理

在实操过程中,可能会遇到如下典型错误:

错误: UnicodeDecodeError: 'utf-8' codec can't decode byte ...

原因: CSV 文件编码不是 UTF-8,导致 Python 读取失败。

解决: 回到第一步,重新用记事本打开文件,另存为 UTF-8 格式即可解决。

此外,确保网络连接通畅,且 Neo4j 的 Bolt 端口(默认 7687)未被防火墙拦截。

目录

  1. 一、准备数据
  2. 二、Neo4j 环境配置
  3. 三、Python 项目搭建
  4. 四、代码实现与数据导入
  5. 1. 连接测试
  6. 替换为你的实际地址和密码
  7. 2. 读取与处理数据
  8. 读取 CSV 文件,请根据实际路径修改
  9. 初始化列表存储元组
  10. 3. 创建节点
  11. 提取所有人物名称
  12. 4. 创建关系
  13. 5. 验证结果
  14. 五、常见问题处理

更多推荐文章

查看全部
  • 无需部署服务器:内网穿透实现本地服务对外演示实战
  • 前端 DOM 操作核心知识与实战解析
  • FPGA Debug:PCIE XDMA 无法 Link Up 使用 LTSSM 定位问题
  • WebGIS 技术实战与多领域应用成果展示
  • Vue 项目中集成 Bmob 后端云服务入门
  • DeepSeek 辅助降低论文 AIGC 检测率的指令与工具指南
  • C++实现机械臂力控算法全过程详解
  • 企业级招聘数据采集实战:基于 Bright Data AI Studio 的自动化方案
  • Java 前缀和算法实战:从一维到二维的解题思路
  • 毕业论文写作困境分析与智能辅助工具应用
  • Python 爬虫结合比迪丽 AI 绘画模型自动化采集艺术素材
  • BERT 模型详解:架构、原理与实战
  • WebSphere 应用服务器节点同步异常排查与修复方案
  • 前端实战:实现浏览器通知功能
  • Python 打包工具 auto-py-to-exe 使用指南
  • Linux 零基础入门:掌握操作系统核心概念
  • 本地 AI 绘画工具 Z-Image-Turbo_UI 界面与性能实测
  • 鸿蒙电商购物车全栈实战:用户管理、商品列表与购物车实现
  • 基于 Python 与开源 AI 构建本地智能问答系统
  • JavaSE 核心知识点总结

相关免费在线工具

  • RSA密钥对生成器

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

  • Mermaid 预览与可视化编辑

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

  • 随机西班牙地址生成器

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

  • curl 转代码

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

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online