Python Flask应用程序中出现KeyError,Heroku中上载了CSV和CSV
我和一个朋友在Flask中做了这个web应用,我用下面的表格从上传的CSV中得到了任何类型的图的X和Y。代码如下:Python Flask应用程序中出现KeyError,Heroku中上载了CSV和CSV,python,html,pandas,flask,heroku,Python,Html,Pandas,Flask,Heroku,我和一个朋友在Flask中做了这个web应用,我用下面的表格从上传的CSV中得到了任何类型的图的X和Y。代码如下: <form action="{{url_for('plot')}}" method="POST" enctype="multipart/form-data"> <div class="form-group"><label>
<form action="{{url_for('plot')}}" method="POST" enctype="multipart/form-data">
<div class="form-group"><label>Select X Axis</label><select class="form-control" name="x_axis" required>
<option value=""></option>
{% for column in cols %}
<option value="{{column|string}}">{{column}}</option>
{% endfor %}
</select></div>
<div class="form-group"><label>Select Y Axis</label><select class="form-control" name="y_axis" required>
<option value=""></option>
{% for column in cols %}
<option value="{{column|string}}">{{column}}</option>
{% endfor %}
</select></div>
<div class="form-group"><label>Plot Type</label><select class="form-control" name="plot_type" required>
<option value=""></option>
<option value="scatter">Scatter Plot</option>
<option value="line">Line Plot</option>
<option value="bar">Bar Plot</option>
<option value="sunburst">Sunburst Plot</option>
<option value="corelation">Correlation Matrix</option>
<option value="table">Table</option>
</select><br><br>
<div class="form-group"><button class="btn btn-primary btn-block" type="submit">Plot</button></div>
</form>
有趣的是,即使服务器中存储了CSV,也会导致相同的错误
任何其他的澄清,我都很乐意回答。我一直试图在Heroku中使用它,但没有用。我切换到PythonyWhere,现在错误不会弹出。您确定没有删除所有数据:
df=df.dropna(how=“any”)
?不,一点也不。我在Jupyter笔记本上运行了相同的代码,结果很好。我认为这可能是一个Heroku问题,因为我设法在Pythonywhere中托管了它,但错误没有出现。
def plot_choose():
f = request.files['csv']
if f.filename.split('.')[1] == 'csv':
f.save(secure_filename(f.filename))
else:
return "<h1>Incorrect File Format</h1>"
global df
df = pd.read_csv(f.filename)
df = df.dropna(how = "any")
return render_template('plot.html', cols=list(df.columns), tables = [df.head().to_html(classes='data')])
x_ax = str(request.form['x_axis'])
y_ax = str(request.form['y_axis'])
plot = str(request.form['plot_type'])