我正在尝试建立一个for循环,以提取大约60万个邮政编码的民选代表数据。基本网址保持不变,唯一的变化是邮政编码。

理想情况下,我想创建一个所有邮政编码的列表,然后使用request.get为列表中的所有邮政编码提取数据。我在下面提出了此代码,但它只是提取列表中最后一个邮政编码的数据。我不太确定为什么会这样,并且是python初学者-因此,我们将不胜感激!



#loop test
postcodes = ['P0L1B0','P5A3P1', 'P5A3P2', 'P5A3P3']

for i in range(len(postcodes)):
   rr = requests.get('https://represent.opennorth.ca/postcodes/{}'.format(postcodes[i]))

data1=json.loads(rr.text)

data1

最佳答案

您的代码无效,因为它会覆盖data1。

尝试这个:

#loop test
responses = list() # stores responses for postal codes
postcodes = ['P0L1B0','P5A3P1', 'P5A3P2', 'P5A3P3']

for postcode in postcodes:
   rr = requests.get('https://represent.opennorth.ca/postcodes/{}'.format(postcode))
   data=json.loads(rr.text)
   responses.append(data)


现在,您的回复将保存在回复列表中。

提示:
您可以在不使用索引的情况下遍历列表。

关于python - python循环以提取用于迭代URL的API数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53558837/

10-09 06:05