Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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
Python 在Flask引导页面上呈现JSON输出_Python_Json_Twitter Bootstrap_Pandas_Flask - Fatal编程技术网

Python 在Flask引导页面上呈现JSON输出

Python 在Flask引导页面上呈现JSON输出,python,json,twitter-bootstrap,pandas,flask,Python,Json,Twitter Bootstrap,Pandas,Flask,我试图将Flask中的JSON文件显示到我的HTML页面中 烧瓶 HTML 我得到的是一张空白页。我想在页面上将其显示为一个漂亮的表格。我认为您可以先将值转换为字典,然后循环表格: @app.route("/analysis") def analysis(): data = pd.read_csv('static/uploads/' + global_file.filename) temp_dict = data.to_dict(orient='records') ret

我试图将Flask中的JSON文件显示到我的HTML页面中

烧瓶

HTML


我得到的是一张空白页。我想在页面上将其显示为一个漂亮的表格。

我认为您可以先将值转换为字典,然后循环表格:

@app.route("/analysis")
def analysis():
    data = pd.read_csv('static/uploads/' + global_file.filename)
    temp_dict = data.to_dict(orient='records')
    return render_template('results.html', summary = temp_dict)

发生这种情况的原因是,您使用json.dumps将json对象转换为字符串,然后逐个字符遍历字符串并尝试访问Name属性。如果省略.Name,您确实会看到每个字符都在后面打印出来

要解决这个问题,您应该为模板提供实际对象:dict列表。像这样:

@app.route("/analysis")
def analysis():
    data = pd.read_csv('static/uploads/' + global_file.filename)
    temp_json = data.to_json(orient='records')
    json_df = json.loads(temp_json)
    return render_template('results.html', summary = json_df)
然后仍然不会有实际的表,因为在模板中没有tr或td元素。如果您解决了这个问题:

<div class="results">
     <table>
         {% for item in summary %}
             <tr><td>
             {{ item['Name'] }}
             </td></tr>
         {% endfor %}
     </table>
</div>
您将看到一个实际的表

编辑: 此外,您的分析方法内部的转换有点多余,但您是否缩短了代码以在此处发布

@app.route("/analysis")
def analysis():
    data = pd.read_csv('static/uploads/' + global_file.filename)
    temp_dict = data.to_dict(orient='records')
    return render_template('results.html', summary = temp_dict)
<table>
  {% for value in summary %}
    <tr>
         <td> {{ value['Name'] }} </td>
         <td> {{ value['Age'] }} </td>
         <td> {{ value['Class'] }} </td>
         <td> {{ value['Marks'] }} </td>     
    </tr>
  {%  endfor %}
</table>
@app.route("/analysis")
def analysis():
    data = pd.read_csv('static/uploads/' + global_file.filename)
    temp_json = data.to_json(orient='records')
    json_df = json.loads(temp_json)
    return render_template('results.html', summary = json_df)
<div class="results">
     <table>
         {% for item in summary %}
             <tr><td>
             {{ item['Name'] }}
             </td></tr>
         {% endfor %}
     </table>
</div>