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