如何在函数中定义变量并返回数据?

时间:2020-04-15 17:28:53

标签: python python-3.x

我正在尝试创建一个程序,在该程序中我从API接收COVID-19患者的数量并使用该数据。

这是我的代码:

    import requests
    from datetime import date
    from datetime import timedelta

    date = str(date.today() - timedelta(days=1))
    country = 'india'
    def search(date, country):
        print("Showing Data For :", date)

        url = "https://covid-19-data.p.rapidapi.com/report/country/name"

        querystring = {"date-format":"undefined","format":"undefined","date":date,"name":country}

        headers = {
            'x-rapidapi-host': "covid-19-data.p.rapidapi.com",
            'x-rapidapi-key': "286798d6demshcf160ec64afce22p11662bjsn40bdced08453"
            }

        response = requests.request("GET", url, headers=headers, params=querystring).json()

        data = response[0]
        data = data["provinces"]
        data = data[0]
        return data
    search(date, country)

    print("Total Cases In India :", data['confirmed'])

每当我执行代码时,我都会出错。

这是错误:NameError:未定义名称“数据”

2 个答案:

答案 0 :(得分:1)

您没有使用返回值。

import requests
from datetime import date
from datetime import timedelta

date = str(date.today() - timedelta(days=1))
country = 'india'


def search(date, country):
    print("Showing Data For :", date)

    url = "https://covid-19-data.p.rapidapi.com/report/country/name"

    querystring = {"date-format": "undefined", "format": "undefined", "date": date, "name": country}

    headers = {
        'x-rapidapi-host': "covid-19-data.p.rapidapi.com",
        'x-rapidapi-key': "286798d6demshcf160ec64afce22p11662bjsn40bdced08453"
    }

    response = requests.request("GET", url, headers=headers, params=querystring).json()

    data = response[0]
    data = data["provinces"]
    data = data[0]

    #THIS DATA VARIABLE DOES NOT EXIST OUTSITE OF THE FUNCTION
    return data

# HERE YOU NEED TO ASSIGN THE RETURN VARIABLE TO THE DATA VARIABLE
data = search(date, country)

print("Total Cases In India :", data['confirmed'])

答案 1 :(得分:1)

 print("Total Cases In India :", data['confirmed'])

这在函数外部,并且变量数据在函数范围内定义,因此在它们外部不可见。您应该调用该函数并将其存储在变量中。然后像上面的答案中的@Nivardo一样在打印中使用它。