这里是我的第一个问题!
我正在使用python和flask开发and服务。Neo4j是我的后端,我想APIfy它。
我在图形数据库上运行了一个匹配查询,并希望返回一个json对象。下面是代码。
from flask import Flask, jsonify
from neo4j.v1 import GraphDatabase
app = Flask(__name__)
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver(uri, auth=(user, pass))
@app.route('/')
def com_relations():
with driver.session() as session:
with session.begin_transaction() as tx:
return jsonify(tx.run("MATCH (company:Company)-[]->(c) where c.name is not null "
"RETURN company.name, c.name"))
session.close() 但我在运行应用程序时遇到错误。
TypeError: Object of type 'BoltStatementResult' is not JSON serializable我理解这个错误,我想知道如何将我的语句结果从neo4j中规范化。请帮帮忙。
发布于 2017-10-19 08:19:53
问题是查询的结果是一个StatementResult object,不能被“序列化”。因此,您需要首先准备如下结果:
from flask import Flask, jsonify
from neo4j.v1 import GraphDatabase
app = Flask(__name__)
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver(uri, auth=(user, pass))
@app.route('/')
def com_relations():
with driver.session() as session:
with session.begin_transaction() as tx:
results = (tx.run("MATCH (company:Company)-[]->(c) where c.name is not null"
"RETURN company.name, c.name"))
session.close()
records = []
for record in results:
records.append({"company.name": record["company.name"],
"name": record["c.name"]})
return jsonify(records)发布于 2017-10-25 18:11:37
您还可以更改查询以获得JSON格式。
"MATCH (company:Company)-[]->(c) where c.name is not null RETURN COLLECT({company:company.name, name:c.name}) AS jsonOutput"https://stackoverflow.com/questions/46814462
复制相似问题