使用 python 字典填充 Neo4j
Populating Neo4j using python Dictionary
所以我刚开始使用 Neo4j,我想弄清楚如何填充我的 DataFrame。我有一个单词字典作为列表中的键和同义词作为值,我想填充 Neo4j,这似乎是一种学习如何使用数据库的有趣方式。
例如:
'CRUNK' : [你喝醉了,你喝醉了,你喝醉了,你喝醉了,你疯狂了,你醉了,你酗酒了,你嗨了', 你'派对']
列表的长度不会相等,因此无法将其转换为更典型的 csv 格式,而且我还没有找到关于如何像 SQL Django 应用程序中的数据库。我想做这样的事情:
for each k,v in dictionary:
add k and add relationship to each value in v
有没有人有任何教程、文档或答案可以帮助我指明正确的方向?
合并合并的最终编辑:
这使用字典来检查以确保它们的输出不是 NoneType 或 'NOT FOUND',并使用合并函数用 'SYNONYM' 关系填充图形以确保它们不是重复的.
import pickle
from py2neo import Graph
from py2neo import Node, Relationship
import random
graph = Graph(f'http://neo4j:{pw}@localhost:7474/db/data/'))
udSyn = pickle.load(open('lookup_ud', 'rb'))
myWords = udSyn.keys()
for key in myWords:
print(key)
values = udSyn[key]
if values in [None, 'NOT FOUND']:
continue
node = graph.merge_one('WORD', 'name', key)
for value in values:
node2 = graph.merge_one('WORD', 'name', value)
synOfNode = Relationship(node, 'SYNONYM', node2)
graph.create(synOfNode)
graph.push()
我想你可以直接在 Cypher 中做你想做的事:
MERGE (w:Word {text:{root}})
UNWIND {words} as word
MERGE (w2:Word {text:word})
MERGE (w2)-[:SYNONYM]->(w)
然后您将 运行 这个语句与 http://py2neo.org 的密码会话 API 和两个参数,一个 root
单词和一个 words
.
你也可以使用 foreach 而不是 unwind
MERGE (w:Word {text:{root}})
FOREACH (word IN {words} |
MERGE (w2:Word {text:word})
MERGE (w2)-[:SYNONYM]->(w)
)
所以我刚开始使用 Neo4j,我想弄清楚如何填充我的 DataFrame。我有一个单词字典作为列表中的键和同义词作为值,我想填充 Neo4j,这似乎是一种学习如何使用数据库的有趣方式。
例如:
'CRUNK' : [你喝醉了,你喝醉了,你喝醉了,你喝醉了,你疯狂了,你醉了,你酗酒了,你嗨了', 你'派对']
列表的长度不会相等,因此无法将其转换为更典型的 csv 格式,而且我还没有找到关于如何像 SQL Django 应用程序中的数据库。我想做这样的事情:
for each k,v in dictionary:
add k and add relationship to each value in v
有没有人有任何教程、文档或答案可以帮助我指明正确的方向?
合并合并的最终编辑:
这使用字典来检查以确保它们的输出不是 NoneType 或 'NOT FOUND',并使用合并函数用 'SYNONYM' 关系填充图形以确保它们不是重复的.
import pickle
from py2neo import Graph
from py2neo import Node, Relationship
import random
graph = Graph(f'http://neo4j:{pw}@localhost:7474/db/data/'))
udSyn = pickle.load(open('lookup_ud', 'rb'))
myWords = udSyn.keys()
for key in myWords:
print(key)
values = udSyn[key]
if values in [None, 'NOT FOUND']:
continue
node = graph.merge_one('WORD', 'name', key)
for value in values:
node2 = graph.merge_one('WORD', 'name', value)
synOfNode = Relationship(node, 'SYNONYM', node2)
graph.create(synOfNode)
graph.push()
我想你可以直接在 Cypher 中做你想做的事:
MERGE (w:Word {text:{root}})
UNWIND {words} as word
MERGE (w2:Word {text:word})
MERGE (w2)-[:SYNONYM]->(w)
然后您将 运行 这个语句与 http://py2neo.org 的密码会话 API 和两个参数,一个 root
单词和一个 words
.
你也可以使用 foreach 而不是 unwind
MERGE (w:Word {text:{root}})
FOREACH (word IN {words} |
MERGE (w2:Word {text:word})
MERGE (w2)-[:SYNONYM]->(w)
)