Json 如何从烧瓶url加载数据并在控制台上记录数据?
我想加载一个json文件,该文件是从flask中生成的url获取的。 在Json 如何从烧瓶url加载数据并在控制台上记录数据?,json,reactjs,d3.js,flask,neo4j,Json,Reactjs,D3.js,Flask,Neo4j,我想加载一个json文件,该文件是从flask中生成的url获取的。 在d3.json(url,function)之后,我试图控制台记录json,但是什么都没有发生,我不知道出了什么问题。也许有人能帮上忙 这基本上是我的代码: 要在其中显示图形的组件(display.js): 当我键入数据库中不存在的输入(公司名称)时,我得到一个错误:“Uncaught(in promise)SyntaxError:位置0处JSON中的意外标记N”at(index):1 当我输入一个不存在的输入时,控制台中不会
d3.json(url,function)
之后,我试图控制台记录json,但是什么都没有发生,我不知道出了什么问题。也许有人能帮上忙
这基本上是我的代码:
要在其中显示图形的组件(display.js
):
当我键入数据库中不存在的输入(公司名称)时,我得到一个错误:“Uncaught(in promise)SyntaxError:位置0处JSON中的意外标记N”
at(index):1
当我输入一个不存在的输入时,控制台中不会发生任何事情
这是我的main.py
:
import flask
from pandas import DataFrame
from models import company_search
from flask import request
from models import subsidiaries
app=flask.Flask("__main__")
@app.route("/company")
def result():
if request.method == 'GET':
company_name = request.args.get('company_name', None)
if company_name:
return subsidiaries(company_name)
return "No place information is given"
app.run(debug=True)
这是models.py
(使用neo4j作为数据库):
我从neo4j数据库获取数据。
它不打算控制台记录数据,因为我想从数据生成一个图形。控制台日志仅用于测试数据是否正确。但是现在,数据似乎没有正确地传递到d3.json(url,函数(数据)
。当您返回时,您的问题出现在主文件中,没有给出位置信息。
。由于这不是json格式,JavaScript无法解析它,导致抛出错误。要解决此问题,您可以将其更改为:
import json
@app.route("/company")
def result():
if request.method == 'GET':
company_name = request.args.get('company_name', None)
if company_name:
return subsidiaries(company_name)
return json.dumps("No place information is given")
如果对不存在具有此名称的公司执行相同操作,并且请输入有效的公司名称
,您将不会再收到JSON反序列化错误。但是,D3仍可能抛出错误,因为它不知道如何处理字符串
您可能希望将HTTP状态代码与错误消息一起返回,以便控制错误。要在Flask中执行此操作,您可以将文本与状态代码一起返回。例如:return json.dumps(“错误消息”),400
将返回JSON字符串错误消息,状态代码为400
。由于d3.JSON
对JavaScriptfetch
函数进行底层调用,您应该能够使用data.status
访问状态代码
def subsidiaries(eingabe):
if regex_eingabe_kontrolle(eingabe):
namelistdf = graph.run("MATCH (c:Company)-[rel:Relation]->(d:Company) WHERE rel.relation_group='OWNERSHIP' AND rel.percent_share >= 50 AND c.company_name= $eingabe RETURN c, rel, d",eingabe=eingabe).to_data_frame()
if namelistdf.empty:
return "No company with this name exists"
namelistjson = namelistdf.to_json(orient="records",date_unit="s",default_handler=str)
return namelistjson
else:
return "Please enter a valid company name"
import json
@app.route("/company")
def result():
if request.method == 'GET':
company_name = request.args.get('company_name', None)
if company_name:
return subsidiaries(company_name)
return json.dumps("No place information is given")