[英]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 dataframe讀取它。 但是我將csv保存在本地文件系統中並讀取它。
我嘗試過如下閱讀 -
files = request.files['file']
files.read()
獲得的結果是字節格式,但我需要它以字典的格式。 所以我使用pandas數據幀來讀取它,然后我將其轉換為我的格式的自定義字典。
是否可以在不將其寫入本地文件系統的情況下即時讀取CSV文件? 或者我們可以使用Python Flask Restful實現的任何等效方式?
(由於它是一個文件而不太恰當地命名) files
變量包含一個werkzeug.datastructures.FileStorage對象。 這是一個類似於對象的文件(包含一個read()
方法),因此可以直接將它用作pandas.read_csv()
輸入,如pandas文檔中所示 。
因此,不保存到磁盤的解決方案就像:
class UploadCSV(Resource):
def post(self):
file = request.files['file']
data = pd.read_csv(file)
print(data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.