【发布时间】:2018-07-07 21:07:41
【问题描述】:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Predictions</title>
</head>
<body>
<div class="results">
<table>
{% for item in summary %}
<tr><td>
{{ item['Name'] }}
</td></tr>
{% endfor %}
</table>
</div>
</body>
</html>
我想要在 HTML 模板中显示的三维 JSON 列表。 下面是我的代码,我无法确定我哪里出错了。我尝试了很多以前回答过的问题,但没有用,因此决定创建一个新问题,但无法找到三维列表的解决方案。
from flask import Flask, abort, request,render_template, json
from DataPreparationv4 import Data_Preprocess
import numpy as np
import pandas as pd
import pickle
from flask_jsonpify import jsonpify
pd.options.mode.chained_assignment = None
filename = 'Test2.pkl'
loaded_model = pickle.load(open(filename, 'rb'))
app = Flask(__name__)
@app.route("/", methods=['GET'])
def Predictions():
#Loading Data
Base_Data = pd.read_csv('Test.csv')
#Calling customized function for data pre process
DataSet1 = Data_Preprocess(Base_Data)
CaseNumber = DataSet1[1]
DataSet1 = DataSet1[0]
#loading the ML Model
result = loaded_model.predict(DataSet1)
prob = loaded_model.predict_proba(DataSet1)
#Extracting the probabilities
Predictions = pd.DataFrame({'CTA Code':result,'Prob1':prob[:,0],'Prob2':prob[:,1]})
# Getting the probability of the prediction
Predictions['Probability'] = np.where(Predictions['Prob1'] > Predictions['Prob2'],
Predictions['Prob1'], Predictions['Prob2'])
Predictions['CaseNumber'] = CaseNumber['Case Number']
CTA_Map = [['Y',1],['N',0]]
CTA_Map = pd.DataFrame(CTA_Map,columns=['CTA Met','CTA Code'],dtype=float)
# Converting the 0 or 1 predictions to "Y" or "N"
Predictions = pd.merge(Predictions,CTA_Map[['CTA Code','CTA Met']],on='CTA Code', how='left')
Predictions = Predictions.drop(['CTA Code','Prob1','Prob2'], axis=1)
Predictions = Predictions[['CaseNumber', 'CTA Met', 'Probability']]
#Converting Data frame to list
df_list = Predictions.values.tolist()
JSONP_data = jsonpify(df_list)
return render_template('hello5.html', summary=JSONP_data)
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000,debug = True)
下面是 HTML 代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Predictions</title>
</head>
<body>
<div class="results">
<table>
{% for item in summary %}
<tr><td>
{{ item['Name'] }}
</td></tr>
{% endfor %}
</table>
</div>
</body>
</html>
我在浏览器上收到以下错误:
Internal Server Error 服务器遇到内部错误并且被 无法完成您的请求。服务器过载或 应用程序出现错误。
在命令提示符下:我收到此错误。
文件“D:\Cisco_June Data\templates\hello5.html”,第 3 行,位于顶层 模板代码 {% for item in summary %} TypeError: 'Response' object is not iterable
我正在寻找这样的桌子 Sample Table
JSONP_data 变量中的 JSON 列表示例:
[[33314116979, "Y", 1.0], [33319019191, "Y", 1.0], [33317767878, "N", 0.8006605339105347], [33314115916, "Y", 0.9613333333333333], [33314000397, "Y", 0.8899768072726529], [33318214829, "N", 1.0]
请求您提供指导以解决此问题。
【问题讨论】:
-
这是什么行为?预期的行为是什么?请给我们一个 JSONP_data 的例子。我们必须能够重现您的问题。
-
@Gelineau,按照指示,我添加了在浏览器和 anaconda 命令提示符中遇到的错误。预期输出的图像。
-
@Gelineau,也是JSONP_data的样本
标签: json python-3.x flask