在API中存储函数内的数据

时间:2015-11-20 23:08:36

标签: python python-3.x

对于大多数人来说,我认为是一个非常简单的问题。 我试图在我的一个函数中保存从API URL请求获得的一些数据......

这是我的网址请求(示例):

import urllib.request 
urllib.request.urlopen("https://aaa.com/api").read()  

现在拉特说我得到的答案是“25”,我想把“25”发送给测试API结果的函数:

def test_api(a):
    if (a <= 5):
       return ("not good..")
    elif (a == 25):
       return ("great...") 

那么我怎样才能“自动”将API的结果发送到(a)我的函数中?

(我的一些API只给了我简单的数字(312,46.12,98 ..),但其他人给了我更复杂的数据,如json和其他列表,但我稍后将处理它...)

2 个答案:

答案 0 :(得分:2)

您可以将结果存储在变量中并将其传递给方法。

import urllib.request 
response = urllib.request.urlopen("https://aaa.com/api").read()  

def test_api(a):
    if isinstance(a, int):
        if (a <= 5):
           return ("not good..")
        elif (a == 25):
           return ("great...") 
    else :
        return "Opps...I was expecting an Integer" 

def type_conversion(val, to_type, default=None):
    try:
        return to_type(val)
    except ValueError:
        return default

# type_conversion('str', int) # returns None
# type_conversion('str', int, 0) # returns 0
print (test_api(type_conversion(response, int)))

答案 1 :(得分:0)

假设urlopen()返回一个整数:

import urllib.request 
a = urllib.request.urlopen("https://aaa.com/api").read()  

def test_api(a):
    if (a <= 5):
       return ("not good..")
    elif (a = 25):
       return ("great...") 

test_api(a)

如果没有,您需要从响应中提取特定值,并确保它是一个整数(例如test_api(int(a)))。