Python 替换密码模板中的参数
以及为可读性而格式化的查询本身:Python 替换密码模板中的参数,python,neo4j,cypher,py2neo,Python,Neo4j,Cypher,Py2neo,以及为可读性而格式化的查询本身: POST /db/data/cypher HTTP/1.1 Accept-Encoding: identity Content-Length: 243 Host: localhost:7474 Content-Type: application/json X-Stream: true;format=pretty User-Agent: py2neo/1.6.0 HTTPStream/1.0.9 Python/2.7.3-final-0 (linux2) {"q
POST /db/data/cypher HTTP/1.1
Accept-Encoding: identity
Content-Length: 243
Host: localhost:7474
Content-Type: application/json
X-Stream: true;format=pretty
User-Agent: py2neo/1.6.0 HTTPStream/1.0.9 Python/2.7.3-final-0 (linux2)
{"query":"\n CYPHER 1.9\n START user = node(*)\n WHERE user.password? = '{password}'\n RETURN user\n ","params":{"password":"$2a$12$5.OLqPRaoAhItdfAgNZZYeCf8TJzSM2aMmnK8a.K2DdrKOoMhKOpi"}}HTTP/1.1 200 OK
Content-Length: 44
Content-Type: application/json; charset=UTF-8
Access-Control-Allow-Origin: *
Server: Jetty(6.1.25)
{
"columns" : [ "user" ],
"data" : [ ]
}
现在,如果我在neo4j shell中运行这个:
{"query":
"
CYPHER 1.9
START user = node(*)
WHERE user.password? = '{password}'
RETURN user
",
"params":
{ "password":
"$2a$12$5.OLqPRaoAhItdfAgNZZYeCf8TJzSM2aMmnK8a.K2DdrKOoMhKOpi" } }
我收到预期结果,一个节点有一个用户
显然,如果我发送这个查询,我不知道。有什么好处
注:如果有必要,实际发送请求的库是
httpstream
忽略参数周围的引号:
start user = node(*)
where user.password = '$2a$12$5.OLqPRaoAhItdfAgNZZYeCf8TJzSM2aMmnK8a.K2DdrKOoMhKOpi'
return user;
{“查询”:
"
密码1.9
开始用户=节点(*)
WHERE user.password?={password}//谢谢,这很有效,但是现在看来py2neo解析器无法解析我要返回的JSON。这让我困惑了一段时间(实际上我也尝试了你的建议,只是不明白为什么会出错)@wvxvw:关于你的JSON问题,请提出另一个标有neo4j
和py2neo
的问题。这是一个不同的主题,因此应该在不同的线程中处理。
{"query":
"
CYPHER 1.9
START user = node(*)
WHERE user.password? = {password} // <---- quotes removed here
RETURN user
",
"params":
{ "password":
"$2a$12$5.OLqPRaoAhItdfAgNZZYeCf8TJzSM2aMmnK8a.K2DdrKOoMhKOpi" } }