我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

经过一系列 neo4j 图形数据库的文章,苏南大叔也捡起这一系列文章的初衷。那就是使用 python 脚本查询 neo4j 内的数据,经过一系列的资料查询,可以知道:目前有两个类库,可以实现这一需求,一个是py2neo,另外一个是neo4j-driver(在nodepython下面都存在)。本文中选用了neo4j来实现需求,因为需求本身不难,所以代码上也比较简单。

苏南大叔:neo4j图数据库,如何利用py2neo读取图数据?数据格式转化 - py2neo-data
neo4j图数据库,如何利用py2neo读取图数据?数据格式转化(图5-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文记录使用py2neoneo4j数据库中执行语句并查询出数据,再对数据进行转换的经验。本文测试环境:win10neo4j@4.4.5,python@3.6.8py2neo@2021.2.3

执行 cypher 语句

可以执行普通的增删改查语句,也可以返回数据。具体的增删改查语句,可以参考:

在这些文章里面,选出一个适合的语句即可。这里假设选择的是最常见的一个语句:

match (n) return n

那么通过py2neo执行这条语句并获得返回值的方式如下:

from py2neo import Graph, Node, Relationship,NodeMatcher
graph = Graph('http://localhost:7474',auth=("neo4j","neo4j"))
data = graph.run("match (n)-[r]-(m) return n,r,m").data()
注意修改:地址,用户名,密码。

苏南大叔:neo4j图数据库,如何利用py2neo读取图数据?数据格式转化 - node-data
neo4j图数据库,如何利用py2neo读取图数据?数据格式转化(图5-2)

转化为 dataframe

from pandas import DataFrame
df = DataFrame(data)

苏南大叔:neo4j图数据库,如何利用py2neo读取图数据?数据格式转化 - node-df
neo4j图数据库,如何利用py2neo读取图数据?数据格式转化(图5-3)

py2neo的查询结果,转换为 pandas 的 dataframe 后,就可以有很多的操作方案了。可以参考下面的文章:

py2neo的官方文档里面,提到了一个函数叫to_pandas_series。而在实际的发行代码中,这个函数并不存在,不知道这个是啥情况。

转化为 json

import json
result = df.to_json(orient="split")  # string

苏南大叔:neo4j图数据库,如何利用py2neo读取图数据?数据格式转化 - json_string
neo4j图数据库,如何利用py2neo读取图数据?数据格式转化(图5-4)

parsed = json.loads(result)
print(parsed["data"])  # dict

苏南大叔:neo4j图数据库,如何利用py2neo读取图数据?数据格式转化 - json-dict
neo4j图数据库,如何利用py2neo读取图数据?数据格式转化(图5-5)

参考文献

综述

py2neo文档的话,会发现它的功能非常强大。看官方的文档,苏南大叔的错觉是:py2neo单独实现了一个代码版本的neo4j。这么强大的功能,苏南大叔暂时用不到啊,一个graph.run().data()似乎已经足够了。所以,关于py2neo的相关经验,以后遇到哪个再说哪个吧。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python    neo4j