列表中的Python循环返回错误答案

eanckbw9  于 2023-01-29  发布在  Python
关注(0)|答案(1)|浏览(140)

我有一个代码,使用一个API的请求:

lists = [254,255,256]
length = len(lists)
  
for li in range(length):
  for count in range(4):
    #o start dentro de url é o counter. Ou seja, ele vai até 4, a partir do 0. O lists[li] é o id, logo ele faz um loop de 0 a 5 pra cada id e colheta as informações para transformar em DATA JSON
    url = "https://((site-name))/api/v1/implantacao/projeto/{}/tarefa?start={}&limit=50".format(lists[li], count)
    print(url)
    response = requests.get(url, headers=headers)
    data = response.json() 
    unidades(data)

在url中,第一个{}是项目的ID,第二个{}是分页
代码延续:

def unidades(data):
  nome = []
  for i in data['data']:
    nome.append(i['nome'])

当我运行这段代码时,代码只返回URL中的最后一个Count循环(分页中的最后一页)
如果不使用append,而是使用list:

def unidades(data):
  for i in data['data']:
    print(i['nome'])

对于print,代码返回所有页面的所有信息,与list不同,list只返回最后一个页面,我怎么能像print输出一样,列出所有页面的所有信息呢?

omqzjyyz

omqzjyyz1#

每次调用unidades()时,都从一个空的nome列表开始。unidades()应该将该列表作为一个参数并添加到该列表中,这样上一次调用中的名称将保持不变。

def unidades(data, nome):
    for i in data['data']:
        nome.append(i['nome'])

lists = [254,255,256]
length = len(lists)
nomes = []

for li in lists:
    for count in range(4):
        #o start dentro de url é o counter. Ou seja, ele vai até 4, a partir do 0. O li é o id, logo ele faz um loop de 0 a 5 pra cada id e colheta as informações para transformar em DATA JSON
        url = "https://((site-name))/api/v1/implantacao/projeto/{}/tarefa?start={}&limit=50".format(li, count)
        print(url)
        response = requests.get(url, headers=headers)
        data = response.json() 
        unidades(data, nomes)

print(nomes)

相关问题