Python 在Flask引导页面上呈现JSON输出
我试图将Flask中的JSON文件显示到我的HTML页面中 烧瓶 HTMLPython 在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
我得到的是一张空白页。我想在页面上将其显示为一个漂亮的表格。我认为您可以先将值转换为字典,然后循环表格:
@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>