gpt4 book ai didi

curl - 为什么使用curl 发布密码时没有创建关系?

转载 作者:行者123 更新时间:2023-12-01 06:20:25 25 4
gpt4 key购买 nike

我使用curl执行下面的代码(当我真正运行它时,所有内容都在一行上。我在这里将其分解,以便更容易阅读)。节点已成功创建,但关系未成功。它无法识别节点之间的关系。

curl --user neo4j:mypassword -i -H accept:application/json -H 
content-type:application/json -XPOST http://localhost:7474/db/data/transaction/commit -d
'{"statements":[
{"statement":"CREATE (keanu:Actor { name : '\''Keanu Reeves'\''}) return id(keanu)"},
{"statement":"CREATE (chad:Director { name : '\''Chad Stahelski'\''}) return id(chad)"},
{"statement":"CREATE (david:Director { name : '\''David Leitch'\''}) return id(david)"},
{"statement":"CREATE (william:Actor { name : '\''William Dafoe'\''}) return id(william)"},
{"statement":"CREATE (michael:Actor { name : '\''Michael Nyquist'\''}) return id(michael)"},
{"statement":"CREATE (movienew:Movie { title : '\''John Wick'\''}) return id(movienew)"},
{"statement":"CREATE (keanu)-[:ACTS_IN ]->(movienew)"},
{"statement":"CREATE (chad)-[:Directed_IN ]->(movienew)"},
{"statement":"CREATE (david)-[:Directed_IN ]->(movienew)"},
{"statement":"CREATE (william)-[:ACTS_IN ]->(movienew)"},
{"statement":"CREATE (michael)-[:ACTS_IN ]->(movienew)"}
]}'

enter image description here

它无法识别哪些节点之间的关系。

我该如何解决这个问题?


更新:我现在已将代码更改为这样

curl --user neo4j:mypassword -i -H accept:application/json -H content-type:application/json -XPOST http://localhost:7474/db/data/transaction/commit -d '{"statements":[{"statement":"CREATE (matrix1:Movie { title : '\''The Matrix'\'', year : '\''1999-03-31'\'' }) return id(matrix1)","CREATE (matrix2:Movie { title : '\''The Matrix Reloaded'\'', year : '\''2003-05-07'\'' }) return id(matrix2)","CREATE (matrix3:Movie { title : '\''The Matrix Revolutions'\'', year : '\''2003-10-27'\'' }) return id(matrix3)","CREATE (keanu:Actor { name : '\''Keanu Reeves'\''}) return id(keanu)","CREATE (laurence:Actor { name : '\''Laurence Fishburne'\''})","CREATE (carrieanne:Actor { name : '\''Carrie-Anne Moss'\''})","CREATE (keanu)-[:ACTS_IN { role : '\''Neo'\'' }]->(matrix1)","CREATE (keanu)-[:ACTS_IN { role : '\''Neo'\'' }]->(matrix2)","CREATE (keanu)-[:ACTS_IN { role : '\''Neo'\'' }]->(matrix3)","CREATE (laurence)-[:ACTS_IN { role : '\''Morpheus'\'' }]->(matrix1)","CREATE (laurence)-[:ACTS_IN { role : '\''Morpheus'\'' }]->(matrix2)","CREATE (laurence)-[:ACTS_IN { role : '\''Morpheus'\'' }]->(matrix3)","CREATE (carrieanne)-[:ACTS_IN { role : '\''Trinity'\'' }]->(matrix1)","CREATE (carrieanne)-[:ACTS_IN { role : '\''Trinity'\'' }]->(matrix2)","CREATE (carrieanne)-[:ACTS_IN { role : '\''Trinity'\'' }]->(matrix3)"}]}'

但后来我收到错误“无法反序列化请求:意外字符(','(code 44))”


更新:根据接受的答案,我复制了确切的格式并将其应用到另一个程序,但这次我收到了以下错误:

{"results":[],"errors": [{"code":"Neo.ClientError.Request.InvalidFormat","message":"Unable to deserialize request: Unexpected character ('.' (code 46)): was expecting double-quote to start field name\n at [Source: HttpInputOverHTTP@442ac29b; line: 1, column: 3]"}]}

我的代码是:

curl --user neo4j:mypassword -i -H accept:application/json \
-H content-type:application/json \
-XPOST http://localhost:7474/db/data/transaction/commit \
-d @- << EOF
{
"statements":
[
{
"statement":
"CREATE (matrix1:Movie { title : 'The Matrix', year : '1999-03-31'})
CREATE (matrix2:Movie { title : 'The Matrix Reloaded', year : '2003-05-07'})
CREATE (matrix3:Movie { title : 'The Matrix Revolutions', year : '2003-10-27'})
CREATE (keanu:Actor { name : 'Keanu Reeves'})
CREATE (laurence:Actor { name : 'Laurence Fishburne'})
CREATE (carrieanne:Actor { name : 'Carrie-Anne Moss'})
CREATE (keanu)-[:ACTS_IN { role : 'Neo' }]->(matrix1)
CREATE (keanu)-[:ACTS_IN { role : 'Neo' }]->(matrix2)
CREATE (keanu)-[:ACTS_IN { role : 'Neo' }]->(matrix3)
CREATE (laurence)-[:ACTS_IN { role : 'Morpheus' }]->(matrix1)
CREATE (laurence)-[:ACTS_IN { role : 'Morpheus' }]->(matrix2)
CREATE (laurence)-[:ACTS_IN { role : 'Morpheus' }]->(matrix3)
CREATE (carrieanne)-[:ACTS_IN { role : 'Trinity' }]->(matrix1)
CREATE (carrieanne)-[:ACTS_IN { role : 'Trinity' }]->(matrix2)
CREATE (carrieanne)-[:ACTS_IN { role : 'Trinity' }]->(matrix3)
RETURN *"
}
]
}
EOF

有人可以告诉我为什么这是不正确的吗?

最佳答案

我认为最好的方法是删除一堆不必要的勾选,这样你就可以更好地看到你在做什么。正如 @inversefalcon 所说,当您执行每个语句时,您会丢失上下文。您希望将所有内容集中在一起,以便在最后创建关系时保留每个 CREATE 中的标识符。

您应该能够按原样剪切并粘贴此 block 。

curl --user neo4j:password -i -H accept:application/json \
-H content-type:application/json \
-XPOST http://localhost:7474/db/data/transaction/commit \
-d @- << END_OF_CYPHER
{
"statements":
[
{
"statement":
"CREATE (keanu:Actor { name : 'Keanu Reeves'})
CREATE (chad:Director { name : 'Chad Stahelski'})
CREATE (david:Director { name : 'David Leitch'})
CREATE (william:Actor { name : 'William Dafoe'})
CREATE (michael:Actor { name : 'Michael Nyquist'})
CREATE (movienew:Movie { title : 'John Wick'})
CREATE (keanu)-[:ACTS_IN ]->(movienew)
CREATE (chad)-[:Directed_IN ]->(movienew)
CREATE (david)-[:Directed_IN ]->(movienew)
CREATE (william)-[:ACTS_IN ]->(movienew)
CREATE (michael)-[:ACTS_IN ]->(movienew)
RETURN *"
}
]
}
END_OF_CYPHER

关于curl - 为什么使用curl 发布密码时没有创建关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42150785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com