#python-requests
#python-запросы
Вопрос:
from quart import Quart, request, render_template, jsonify
import json
import os, sys
import pandas as pd
import requests
import asyncio
from pylon.model.db_models import RawFiles
from pylon.orm import db
app = Quart(__name__)
@app.route('/upload', methods=['POST'])
async def handle_form():
f = await request.files['filename']
f.save(f.filename)
data = pd.read_csv(f.filename)
data.to_json("json_data.json")
data = pd.read_json("json_data.json")
os.remove("json_data.json")
os.remove(f.filename)
print(type(data))
print(data)
return ""
@app.route("/")
async def index():
return await render_template('upload.html')
if __name__ == "__main__":
app.run(host="bheem11.arch.des.co", port=5043, debug = True)
Я получаю одну ошибку, описанную в заголовке. Я работаю в платформе quartz на python. Надеемся на правильное решение. На самом деле я получаю ошибку сопрограммы при выполнении @app.route («/upload», методы = «post»).
Ответ №1:
Эта строка await request.files['filename']
должна быть (await request.files)['filename']
. Без круглой скобки сначала вычисляется все, что находится справа от await
, что приводит к попытке подписаться ( ['filename']
операции) на files
атрибут. Это не работает, так как files
атрибут возвращает сопрограмму, которая не подлежит подписке. Подробнее об этом в документации Quart.