Python-将请求的结果传递到另一个请求中

时间:2020-09-16 13:50:18

标签: python json

我是Python初学者。我正在尝试采用一个request.get的结果,并将值传递给另一个。本质上(第一个response.get)提供了客户ID号-然后我试图获取这些客户ID编号并获得客户评分(来自第二个response.get)

我让第一部分工作了,它正在按预期返回结果。 我只是不确定如何将值传递到第二部分。

p = (('Location', 'CA'), ('NumRows', '5'))
prepare_link = requests.get('https://api.linktomyapi?', auth=BearerAuth('AMB7i7F63t13s58yN9kLtLNBjo607Di7'), params=p)
test = requests.get(prepare_link.url, auth=BearerAuth('AMB7i7F63t13s58yN9kLtLNBjo607Di7'), params=p)

data = json.loads(test.text)

for customer in data['Data']:        
    BusinessID = customer['Id']
    print(BusinessID)

这为我提供了

的输出
5316636
14210
6509
1305
13249780

我现在正在尝试获取此输出并将值传递到我要输出的另一个get中,如下所示

客户ID(从上面)-客户得分(从第二次获得)

p2 = ()
prepare_link2 = requests.get('https://api.linktomyapicustmerscore?', auth=BearerAuth('AMB7i7F63t13s58yN9kLtLNBjo607Di7'), params=p2)

我如何设置循环以将显示的所有5行的Customer ID值(从第一个获取)传递到p2中?

我确实尝试使用来存储首次进入数组的结果

  CustomerIdList = []
    for customer in data['Data']:
        #print(customer['Id'])
        
        BusinessID = customer['Id']
        CustomerIdList.append(str(customer['Id']))
    
    print (CustomerIdList)

为我提供了此输出

['5316636', '14210', '6509', '1305', '13249780']

我只是不知道如何使用它来创建第二次获取的循环。

2 个答案:

答案 0 :(得分:1)

您可以遍历CustomerIdList列表。下面的示例:

CustomerIdList=['5316636', '14210', '6509', '1305', '13249780']

for i in CustomerIdList:
    print ("requests.get('https://api.linktomyapicustmerscore?', auth=BearerAuth('AMB7i7F63t13s58yN9kLtLNBjo607Di7'), params="+i+")")

答案 1 :(得分:1)

您可以在循环中初始化列表和append

data = json.loads(test.text) #imported from json library
i=0
mlis=[]
for customer in data:         
      if customer == 'Data':
            BusinessID = data[customer]
            for customer in BusinessID:
                  mlis.append(BusinessID[i]['Id'])
                  i+=1

print(mlis)