使用 Python Flask 上传 CSV 文件并处理它
Upload CSV file using Python Flask and process it
我有以下代码使用 Python FLASK 上传 CSV 文件。
from flask_restful import Resource
import pandas as pd
ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
class UploadCSV(Resource):
def post(self):
files = request.files['file']
files.save(os.path.join(ROOT_PATH,files.filename))
data = pd.read_csv(os.path.join(ROOT_PATH,files.filename))
print(data)
api.add_resource(UploadCSV, '/v1/upload')
if __name__ == '__main__':
app.run(host='localhost', debug=True, port=5000)
此代码运行良好,我可以成功上传 CSV 文件并使用 pandas 数据框读取它。但我将 csv 保存在本地文件系统中并读取它。
我试过像下面这样阅读 -
files = request.files['file']
files.read()
得到的结果是字节格式的,但我需要的是字典格式的。所以我使用 pandas 数据框来读取它,然后我将它转换成我格式的自定义字典。
是否可以即时读取 CSV 文件而不将其写入本地文件系统?或者我们可以使用 Python Flask Restful?
实现的任何等效方法
(不太恰当地命名,因为它是一个文件)files
变量包含一个 werkzeug.datastructures.FileStorage object. This is a file like object (containing a read()
method), and as such it is possible to use it directly as input to pandas.read_csv()
as seen in the pandas documentation。
因此,不存盘的解决方法很简单:
class UploadCSV(Resource):
def post(self):
file = request.files['file']
data = pd.read_csv(file)
print(data)
我有以下代码使用 Python FLASK 上传 CSV 文件。
from flask_restful import Resource
import pandas as pd
ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
class UploadCSV(Resource):
def post(self):
files = request.files['file']
files.save(os.path.join(ROOT_PATH,files.filename))
data = pd.read_csv(os.path.join(ROOT_PATH,files.filename))
print(data)
api.add_resource(UploadCSV, '/v1/upload')
if __name__ == '__main__':
app.run(host='localhost', debug=True, port=5000)
此代码运行良好,我可以成功上传 CSV 文件并使用 pandas 数据框读取它。但我将 csv 保存在本地文件系统中并读取它。
我试过像下面这样阅读 -
files = request.files['file']
files.read()
得到的结果是字节格式的,但我需要的是字典格式的。所以我使用 pandas 数据框来读取它,然后我将它转换成我格式的自定义字典。
是否可以即时读取 CSV 文件而不将其写入本地文件系统?或者我们可以使用 Python Flask Restful?
实现的任何等效方法(不太恰当地命名,因为它是一个文件)files
变量包含一个 werkzeug.datastructures.FileStorage object. This is a file like object (containing a read()
method), and as such it is possible to use it directly as input to pandas.read_csv()
as seen in the pandas documentation。
因此,不存盘的解决方法很简单:
class UploadCSV(Resource):
def post(self):
file = request.files['file']
data = pd.read_csv(file)
print(data)