gpt4 book ai didi

python - jsonify bolt 语句结果

转载 作者:行者123 更新时间:2023-11-28 21:39:27 24 4
gpt4 key购买 nike

我的第一个问题在这里!

我正在使用 python 和 flask 开发网络服务。 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 中 jsonify 我的语句结果。请帮忙。

最佳答案

问题是查询的结果是 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)

关于python - jsonify bolt 语句结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46814462/

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