如何在python flask form post api中加载和读取excel文件

如何在python flask form post api中加载和读取excel文件,python,excel,flask,jinja2,Python,Excel,Flask,Jinja2,您好,我想上传一个excel文件表格,在前端和后端,我想读取该excel文件的所有内容,并将其存储在我的数据库中 @app.route('/getfile', methods=['POST']) def getfile(): try: file = request.files['file'] foo=file.filename dframe = pd.read_excel(foo) return dframe except Exception as ex:

您好,我想上传一个excel文件表格,在前端和后端,我想读取该excel文件的所有内容,并将其存储在我的数据库中

@app.route('/getfile', methods=['POST'])
def getfile():
try:
   file = request.files['file']
   foo=file.filename
   dframe = pd.read_excel(foo)
   return dframe


except Exception as ex:
      return ex   
我得到了文件名,我想从熊猫读取excel文件数据,但它显示没有这样的目录存在

from flask import Flask, request, jsonify
import flask_excel as excel
app = Flask(__name__)
import json
import xlrd
import os 
import pandas as pd
from collections import OrderedDict
from pathlib import Path
from flask_cors import CORS,cross_origin
from json import loads
import pandas as pd

wsgi_app = app.wsgi_app
excel.init_excel(app)
代码1 #代码2

第一个代码告诉我404异常,第二个代码告诉我“没有这样的目录存在” 有人能帮我阅读excel文件的内容吗

from flask import Flask, request, jsonify
from tablib import Dataset


app = Flask(__name__)

@app.route('/upload', methods=['POST'])
def upload_file():
    # I used form data type which means there is a
    # "Content-Type: application/x-www-form-urlencoded"
    # header in my request
    raw_data = request.files['myfile'].read()  # In form data, I used "myfile" as key.
    dataset = Dataset().load(raw_data)
    return jsonify(dataset.export('json'))


if __name__ == '__main__':
    app.run(debug=True)
这个小片段工作得很好。您不需要使用庞大的数据分析库将某些内容导入数据库。但如果你坚持使用熊猫,你的问题需要另一个答案

在执行任何其他操作之前,请查看文档:


试试这个伙伴,你需要先读取文件(
foo.read()
)。这样,您将获得未解析的文件,然后需要使用pandas读取此未解析的文件,如下所示:

@app.route('/getfile', methods=['POST'])
def getfile():
try:
    file = request.files['file']
    foo=file.filename
    unparsedFile = foo.read()
    dframe = pd.read_excel(unparsedFile)
    return dframe
except Exception as ex:
    return ex

嗨,它的工作很好,当我从邮递员发送请求时,我可以读取Excel文件并将数据保存到数据库。但是,当我尝试使用java脚本和j query从fronted发送时,它仍然显示404,很明显,您发布的消息是错误的。谷歌“如何用js发布文件”。你需要表现出努力,对吗?这段代码在windows系统中运行得很好。但是当我在Ubuntu或Linux中运行相同的代码时,它会说JSON数据必须是str而不是strbytes@Abhinay,我在LMDE中测试它,LMDE是Linux Mint Debian版本,没有发现任何错误。你能详细说明一下吗?这样我们就可以解决它了。当我在Ubuntu中运行相同的代码,并且通过windows系统从postman发送文件时,它会显示“JSON对象必须是str,而不是“bytes”。当我从Ubuntu系统发送请求时也会发生同样的事情,如果代码托管在Ubuntu系统中
from flask import Flask, request, jsonify
from tablib import Dataset


app = Flask(__name__)

@app.route('/upload', methods=['POST'])
def upload_file():
    # I used form data type which means there is a
    # "Content-Type: application/x-www-form-urlencoded"
    # header in my request
    raw_data = request.files['myfile'].read()  # In form data, I used "myfile" as key.
    dataset = Dataset().load(raw_data)
    return jsonify(dataset.export('json'))


if __name__ == '__main__':
    app.run(debug=True)
@app.route('/getfile', methods=['POST'])
def getfile():
try:
    file = request.files['file']
    foo=file.filename
    unparsedFile = foo.read()
    dframe = pd.read_excel(unparsedFile)
    return dframe
except Exception as ex:
    return ex