You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Flask接收的IRIS CSV变量读取为Pandas DataFrame

解决Flask中从request.values生成IRIS数据集DataFrame的问题

嘿,我之前做Flask项目处理机器学习数据集时也碰到过一模一样的需求——不用文件或URL,直接从请求变量里生成Pandas DataFrame。根据你从request.values提取数据的场景,这里有两种常见的解决方式:

场景1:请求参数按特征列传递(表单/键值对形式)

如果前端是把IRIS的每个特征作为单独的参数传递(比如sepal_length对应所有样本的花萼长度列表),你可以直接构造字典,再传给pd.DataFrame():

from flask import Flask, request
import pandas as pd

app = Flask(__name__)

@app.route('/upload-iris', methods=['POST'])
def process_iris():
    # 从request.values中提取各特征的所有值(用getlist获取列表)
    iris_data = {
        'sepal_length': request.values.getlist('sepal_length'),
        'sepal_width': request.values.getlist('sepal_width'),
        'petal_length': request.values.getlist('petal_length'),
        'petal_width': request.values.getlist('petal_width'),
        'species': request.values.getlist('species')
    }
    
    # 直接生成DataFrame
    df = pd.DataFrame(iris_data)
    
    # 可选:将数值型特征转为float类型(因为request.values获取的是字符串)
    numeric_features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
    df[numeric_features] = df[numeric_features].astype(float)
    
    # 这里可以添加你的后续处理逻辑,比如模型预测等
    return f"成功生成DataFrame,样本量:{len(df)}"

场景2:请求参数是序列化后的完整数据集(如JSON字符串)

如果前端把整个IRIS数据集序列化成JSON字符串传递(比如一个包含所有样本的列表),可以先解析JSON,再生成DataFrame:

from flask import Flask, request
import pandas as pd
import json

app = Flask(__name__)

@app.route('/upload-iris-json', methods=['POST'])
def process_iris_json():
    # 获取序列化的JSON字符串
    json_data = request.values.get('iris_dataset')
    
    # 解析JSON为Python列表/字典
    parsed_data = json.loads(json_data)
    
    # 生成DataFrame
    df = pd.DataFrame(parsed_data)
    
    # 后续处理逻辑
    return f"成功生成DataFrame,形状:{df.shape}"

注意事项

  • 确保各特征列表的长度一致,否则pd.DataFrame()会抛出长度不匹配的错误;
  • 如果前端表单提交时参数名带[](比如sepal_length[]),getlist()依然能正确提取所有值,不需要修改参数名;
  • 可以添加参数校验逻辑,比如检查是否所有必要特征都存在,避免生成DataFrame时出错。

内容的提问来源于stack exchange,提问作者Morkus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:19:21