Return中缺少1个必需的位置参数



我发现在下面的代码中缺少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'

如果我更改打印返回,它是有效的,但在这种情况下,我需要使用返回来获取数据。

当您调用具有参数的函数时,必须指定参数的值。正确的代码是:

result_data['result'] = map(map_status(insert_data), result_data['result'])

其中(insert_data)是插入需要放置的值的位置。

如果您不希望参数一直是必需的,您可以指定一个可选参数,如下所示:

def map_status(data=None)

这使得data的初始值为NoneType。当你想用数据参数调用函数时,就像用普通参数一样,但要用等号,比如:

map_status(data="hello")

您也可以将可选参数设为空文字:

def map_status(data="")

最新更新