我有一个脚本,它将字典(其项是列表)作为节点和关系插入到我机器上的Neo4j图形数据库中:
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver(uri, auth=("", ""))
session = driver.session()
for key in result_set.keys():
createKeyQuery = 'MERGE ({key}:object{{name: \"{key_not_replaced}\"}})'.format(key=key.replace('.', ''), key_not_replaced=key)
print('Running:', createKeyQuery)
session.run(statement=createKeyQuery)
for item in result_set[key]:
createItemQuery = 'MERGE ({item}:object{{name: \"{item_not_replaced}\"}})'.format(item=item.replace('.', ''), item_not_replaced=item)
createRelationshipQuery = 'MATCH (a:object),(b:object) WHERE a.name = \'{key}\' AND b.name = \'{item}\' MERGE (a)-[r:DEPENDS_ON]->(b)'.format(item=item, key=key)
session.run(statement=createItemQuery)
session.run(statement=createRelationshipQuery)
print('RAN:', createItemQuery)
print('RAN:', createRelationshipQuery)
我的字典是这样的:
{'key1.something.something': ['item1.something.something', 'item2.something.something'],
'key2.something.something': ['item2.something.something']}
在我的代码中,字典大约有300个键。出于某种原因,所有的createItemQuery
语句都在打印(例如,MERGE (key1somethingsomething{name: "key1.something.something"})
实际上是在我的屏幕上打印的),但它没有被执行。未创建名为“key1.something.something”的节点
我的python脚本是否执行得太快,使我的Neo4j实例无法跟上?看起来大多数节点和关系都在创建中,但字典中后面的一个节点并没有添加到图表中。有什么我遗漏的吗?我觉得循环执行的次数没有问题(因为语句正在打印…只是没有执行)
目前没有回答
相关问题 更多 >
编程相关推荐