问题:neo4j数据库查询关系时,关系名称不显示。
图片:
导入关系代码:
LOAD CSV WITH HEADERS FROM"file:///guanxi1.csv"
AS line
MATCH(from:zuozhe{id:line.from_id}),(to:
lunwen{id:line.to_id})
MERGE(from)-[r:author{zuozhe:line.from_id,
lunwen:line.to_id}]->(to)
上午好☀️☀️☀️️
本答案参考ChatGPT-3.5
看起来你的Neo4j关系文本数据读取存在问题。这是因为文件路径名是用双引号包围的,这会导致问题。
为了正确导入关系数据并解决这个问题,你可以按照以下步骤操作:
下面是修改后的代码示例:
import csv
def load_csv_with_headers(filename):
with open(filename, 'r') as file:
reader = csv.reader(file)
headers = next(reader)
data = []
for row in reader:
data.append(row)
return data
filename = "file:///guanxi1.csv"
data = load_csv_with_headers(filename)
# 使用这个数据建立关系模型
from neo4j import GraphDatabase
gdb = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password"))
# 添加新的实体
try:
id = gdb.run("CREATE (:Person {name: '兰于DE', age: 35, house: '老房运输'}"))
except Exception as e:
print(e)
try:
id = gdb.run("CREATE (:Person {name: '柳', age: 20, house: '高限险'}"))
except Exception as e:
print(e)
try:
id = gdb.run("CREATE (:Person {name: '张', age: 35, house: '兰于BP-'}"))
except Exception as e:
print(e)
try:
id = gdb.run("CREATE (:Person {name: '铁路旅李', age: 40, house: '大型复杂'}}")
except Exception as e:
print(e)
try:
id = gdb.run("CREATE (:Person {name: '毛', age: 25, house: 'CSDN@梅琪'}}")
except Exception as e:
print(e)
# 运行查询以获取数据
result = gdb.run("MATCH (a)-[:author]->(b) WHERE a.name='兰于DE' AND b.name='柳'")
print(result.next())
# 访问查询结果
for r in result:
print(r)
这段代码首先尝试从给定的CSV文件中加载数据,并将其格式化为Person
类型的关系模型。然后,它运行了一些查询来获取所需的数据。最后,它打印出了查询结果,并访问了查询结果中的每一项。
请注意,此示例假设您已经启用了neo4j
服务,并且已经在本地服务器上安装了数据库驱动程序。如果您的实际情况与此不符,请根据您的需求调整代码。