我正在尝试建立一个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/