我正在通过以下链接使用data.gov.in数据集API, https://api.data.gov.in/resource/9ef84268-d588-465a-a308-a864a43d0070?api-key=579b464db66ec23bdd000001cdd3946e44ce4aad7209ff7b23ac571b&format=json&offset=0
此链接仅提取10条记录,我试图在该链接的末尾添加一个limit参数,但仍未显示所有记录。
答案 0 :(得分:1)
您正在使用示例api密钥。使用您的电子邮件和电话号码注册并获取您的api密钥。您可以获得想要的结果。
答案 1 :(得分:0)
您将需要重复调用该函数,每次都指定一个新的偏移量。看起来这个特定的API最多只会返回10条记录。
例如,如果您尝试将limit参数设置为5,则可以使用,但如果设置为10或更大,则只会获得10条记录。
例如
https://api.data.gov.in/resource/386ce542-8e39-4c4c-98e0-ddc28c2b5c56?api-key=579b464db66ec23bdd000001cdd3946e44ce4aad7209ff7b23ac571b&format=json&offset=1&limit=5
如果您反复调用该API,每次增加偏移量(例如+1),则一次可获得10条记录的列表。
例如
function getData(offset,limit) {
fetch('https://api.data.gov.in/resource/386ce542-8e39-4c4c-98e0-ddc28c2b5c56?api-key=579b464db66ec23bdd000001cdd3946e44ce4aad7209ff7b23ac571b&format=json&offset=' + offset + '&limit=' + limit).then(response => {
return response.json();
}).then(json => {
console.log(`Data length from offset #${offset}: `, JSON.stringify(json).length);
});
}
// Call for a few offsets.
let offsets = [0,1,2,3,4];
offsets.forEach(offset => getData(offset, 10));
答案 2 :(得分:0)
如果您使用的是python,那么这是另一段代码,其概念是首先获取运行此代码时API密钥返回自身的数据计数 注意:使用您自己的API密钥,可以通过注册到data.gov.in并将其替换为<您的API密钥此处>
import requests
response = requests.get('https://api.data.gov.in/resource/3b01bcb8-0b14-4abf-b6f2-c1bfd384ba69?api-key=< YOUR API KEY HERE >&format=json&limit=1')
data = eval(response.text)
total_count = eval(response.text)['total']
然后在新的响应中再次将total_count作为变量传递:
new_response = requests.get('https://api.data.gov.in/resource/3b01bcb8-0b14-4abf-b6f2-c1bfd384ba69?api-key=< YOUR API KEY HERE >&format=json&limit=%s'%total_count)
new_data = eval(new_response.text)
print (len(new_data['records']))
print (new_data['total'])