【发布时间】:2021-04-10 18:33:59
【问题描述】:
我在下面的代码中缺少 1 个必需的位置参数。我尝试了不同的东西,但没有运气。我相信这是我遗漏的一个小细节,但因为我是 Python 的初学者,我无法自己修复它。
import requests
from flask import Flask, jsonify, request, render_template
import os
app = Flask(__name__)
@app.route('/outages')
def map_status(data):
url = "https://my-api.local.com/data"
response = requests.get(url)
result_data = json.loads(response.text)
if(data['install_status']=='1'):
data['install_status']='Installed'
elif(data['install_status']=='3'):
data['install_status']='Maintenance'
return data
result_data['result']=map(map_status,result_data['result'])
return(list(result_data['result']))
这是我得到的错误:
[ERR] TypeError: map_status() missing 1 required positional argument: 'data'
如果我更改返回打印,它可以工作,但在这种情况下,我需要使用返回来获取数据。
【问题讨论】:
-
您正在调用烧瓶端点函数。你确定这是你想做的吗?
-
绝对不是
return有问题。 -
你怎么调用这个函数
map_status? -
...嗯,one 调用是倒数第二行的递归调用。另一种调用方式是在路由传入请求时从 Flask 调用。请注意,尝试将单个函数用于这两个目的是一个坏主意;它真的应该是或者一个Web服务端点或应用程序逻辑,而不是同时两个相同的东西。
-
呃,这看起来很不对劲。除非您确切知道自己在做什么,否则不应调用带有
app.route注释的函数。
标签: python python-3.x return