0. 前言
尝试请ChatGPT帮写代码:
但发现ChatGPT可以给出逻辑上正确的程序,一旦具体深入询问,有可能会产生错误。
当然,也可能因为提问的人比较少🤣
不管怎么说,这篇可以当成是对ChatGPT茶余饭后的谈资,也可以视作是使用Python连接Neo4j数据库的简单记录吧~
1. 如何引入Neo4j
第一次询问:”如何使用python连接neo4j数据库?”
回答给出了使用neo4j的原始库进行连接的操作:
但是这种写法并不主流(自认为),所以后面提出了使用py2neo库进行连接的要求:
代码如下:
from py2neo import Graph
# Connect to a local Neo4j database
graph = Graph()
# Connect to a remote Neo4j database
graph = Graph("bolt://<host>:<port>", auth=("<username>", "<password>"))
# Execute a Cypher query
result = graph.run("MATCH (a:Person) RETURN a.name")
# Print the results
for record in result:
print(record["a.name"])
2. run()方法解析
但是我并不知道py2neo.Graph.run()方法的具体内容,所以连续发问:
感觉可以当成一个文档来查询了。
3. 如何实现Neo4j中无向图的表示
这个问题相比前面的问题更加场景化,chatGPT的回答出现了一些问题。
给出的程序是正确的,但是由于Neo4j关系的单向性,实际上单靠一条关系并不满足我提出的无向图的要求。
开始质问:
这次虽然语义对了,但是又不满足了CQL语句的格式,执行时会犯语法错误。
再三发问:
这次的回答将 “--” 纠正为 “-” ,回答很人性化🤣
不过语法还是错的,直到下一次才回答正确了。
CQL语句如下:
CREATE (a:Person {name: "Alice"})
CREATE (b:Person {name: "Bob"})
CREATE (a)-[:KNOWS]->(b)
CREATE (b)-[:KNOWS]->(a)
Python代码如下:
from py2neo import Graph
# Connect to the database
graph = Graph()
# Execute the query
graph.run("""
CREATE (a:Person {name: "Alice"})
CREATE (b:Person {name: "Bob"})
CREATE (a)-[:KNOWS]->(b)
CREATE (b)-[:KNOWS]->(a)
""")
至此,本次(代码帮写)Python连接并操作Neo4j实现无向图的学习探讨就此结束,执行这段代码后即会出现双向连接形式下的无向图。