Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python在Neo4j中为多个节点的属性创建一个参数_Python_Database_Graph_Neo4j_Py2neo - Fatal编程技术网

使用Python在Neo4j中为多个节点的属性创建一个参数

使用Python在Neo4j中为多个节点的属性创建一个参数,python,database,graph,neo4j,py2neo,Python,Database,Graph,Neo4j,Py2neo,我试图用Python实现这个非常相同的场景: 我试图做的是将维基百科页面中的所有链接作为节点插入到一个图中,但我在创建步骤中遇到了困难 import wikipedia from py2neo import Graph first_page = "United Kingdom" page = wikipedia.page(first_page) page_name = page.title page_id = page.pageid links = page.links graph =

我试图用Python实现这个非常相同的场景:

我试图做的是将维基百科页面中的所有链接作为节点插入到一个图中,但我在创建步骤中遇到了困难

import wikipedia
from py2neo import Graph

first_page = "United Kingdom"

page = wikipedia.page(first_page)

page_name = page.title
page_id = page.pageid
links = page.links

graph = Graph(bolt=True, password="mypassword")

nodes = {}
nodes['Page'] = list({"title" : c} for c in page.links)
node = "UNWIND {json} as data CREATE (n) SET n = data"
graph.run(node, json=nodes)
如果我打印节点字典,它的格式与上面Neo4j文档链接中所示的格式完全相同,以供参考

{
  "props" : [ {
    "name" : "Andres",
    "position" : "Developer"
  }, {
    "name" : "Michael",
    "position" : "Developer"
  } ]
}
但是,在我的情况下,我收到以下错误消息:

py2neo.status.CypherTypeError:属性值只能是基元类型或其数组


我正在试图找到一种用一条语句创建节点的方法,这是否可以使用Python实现?

错误是由于您传递的json/对象引起的。仅使用列表。尝试传递“节点['Page']”,但不要像下面那样传递“节点

import wikipedia
from py2neo import Graph

first_page = "United Kingdom"

page = wikipedia.page(first_page)

page_name = page.title
page_id = page.pageid
links = page.links

graph = Graph(bolt=True, password="mypassword")

nodes = {}
nodes['Page'] = list({"title" : c} for c in page.links)
node = "UNWIND {json} as data CREATE (n) SET n = data"
graph.run(node, json=nodes['Page'])
或者您可以使用python的neo4j驱动程序,这更简单

import wikipedia
from neo4j.v1 import GraphDatabase, basic_auth

driver = GraphDatabase.driver("bolt://localhost:5687",auth=basic_auth("neo4j","neo"))
session = driver.session()

first_page = "United Kingdom"

page = wikipedia.page(first_page)

page_name = page.title
page_id = page.pageid
links = page.links

nodes = list({"title" : c} for c in page.links)

query = "UNWIND {nodes} as data CREATE (n:Test) SET n = data;"

result = session.run(query,nodes=nodes)
print result 

希望这有帮助

这个问题与您向Neo4j发送一个json对象数组有关,这是不允许的。嗨,Bruno,我可以看到,我仍然不明白如何使用Python在他们的文档页面上实现这个示例。