Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何从烧瓶url加载数据并在控制台上记录数据?_Json_Reactjs_D3.js_Flask_Neo4j - Fatal编程技术网

Json 如何从烧瓶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 当我输入一个不存在的输入时,控制台中不会

我想加载一个json文件,该文件是从flask中生成的url获取的。 在
d3.json(url,function)
之后,我试图
控制台记录
json,但是什么都没有发生,我不知道出了什么问题。也许有人能帮上忙

这基本上是我的代码:

要在其中显示图形的组件(
display.js
):

当我键入数据库中不存在的输入(公司名称)时,我得到一个错误:
“Uncaught(in promise)SyntaxError:位置0处JSON中的意外标记N”
at(index):1

当我输入一个不存在的输入时,控制台中不会发生任何事情

这是我的m
ain.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
对JavaScript
fetch
函数进行底层调用,您应该能够使用
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")