将 py2neo 查询输出为 JSON

outputiing py2neo query as JSON

我已经试过四处寻找,但无济于事。下面是我在 py2neo 中的密码查询:

graph = Graph()
In [6]: query = """Match (C:Customer)-[r:Customer_Send]->(Send:Customer) where C.Galactic_ID = '2000000000084001287' return Send.Galactic_ID """

In [7]: graph.cypher.execute(query)


Out[7]:
       | Send.Galactic_ID
 ----+---------------------
      1 | 2000000000084114531
      2 | 1000000000284949451
      3 | 2000000000084114531
      4 | 1000000000213446086

我希望上面的输出是 JSON 格式。

方法如下:相信对这里的读者会有很大的帮助:

query = """Match (C:Customer)-[r:Customer_Send]->(Send:Customer) where C.Galactic_ID = '2000000000084001287' return Send.Galactic_ID as ID"""

records = graph.cypher.execute(query,Customer='ID')
returnObject = []

In [11]: for record in records:
 ....:     returnObject.append(
 .  ...:     {
  ....:     'Customer':record.ID
     ....:     }
       ....:     )


In [15]: returnObject
Out[15]:
  [{'Customer': u'2000000000084114531'},
  {'Customer': u'1000000000284949451'},
  {'Customer': u'2000000000084114531'},
  {'Customer': u'1000000000213446086'},
  {'Customer': u'2000000000084114531'},
  {'Customer': u'2000000000127655859'},
  {'Customer': u'1000000000296804864'},
  {'Customer': u'2000000000084114531'},
  {'Customer': u'2000000000127655859'},
  {'Customer': u'2000000000127655859'},
  {'Customer': u'2000000000084114531'},
   {'Customer': u'1000000000213446086'}]

  from flask import json


  In [17]: x = json.dumps(returnObject)

  In [18]: x
   Out[18]: '[{"Customer": "2000000000084114531"}, {"Customer":   "1000000000284949451"}, {"Customer": "2000000000084114531"}, {"Customer": "1000000000213446086"}, {"Customer": "2000000000084114531"}, {"Customer": "2000000000127655859"}, {"Customer": "1000000000296804864"}, {"Customer": "2000000000084114531"}, {"Customer": "2000000000127655859"}, {"Customer": "2000000000127655859"}, {"Customer": "2000000000084114531"}, {"Customer": "1000000000213446086"}]'

这对于标准库和最新版本的 py2neo 来说相当简单:

>>> from py2neo import Graph
>>> from json import dumps
>>> g = Graph(password="password")
>>> dumps(g.run("UNWIND range(1, 3) AS n RETURN n").data())
'[{"n": 1}, {"n": 2}, {"n": 3}]'

http://py2neo.org/v3/database.html#py2neo.database.Cursor.data