I am trying to get few API calls with different parameters. Get the data and convert it into CSV file by day, city highest temp, city lowest temp and cities with rain.
I have the following Object with cities and api key:
const cities = {
0: ['Jerusalem', 'il'],
1: ['New York', 'us'],
2: ['Dubai', 'ae'],
3: ['Lisbon', 'pt'],
4: ['Oslo', 'no'],
5: ['Paris', 'fr'],
6: ['Berlin', 'de'],
7: ['Athens', 'gr'],
8: ['Seoul', 'kr'],
9: ['Singapore', 'sgp'],
}
const apiKey = "[retracted]";
This is my API call which I want to iterate dynamically, currently I run it only on the first object params and eventually push the info to weather so I can manipulate the data to order it by days(5 first days), then display the city with the highest temp, city with the lowests temp and all the cities with rain:
request(`http://api.openweathermap.org/data/2.5/forecast?q=${cities[1][0]},${cities[1][1]}&mode=json&appid=${apiKey}`, (error, response, body) => {
let data = JSON.parse(body);
let weather = {
0: [day, highTemp, lowTemp, rain],
1: [day, highTemp, lowTemp, rain],
2: [day, highTemp, lowTemp, rain],
3: [day, highTemp, lowTemp, rain],
4: [day, highTemp, lowTemp, rain],
}
// day 1
console.log(data['city']['name']);
console.log(data['list'][0].dt_txt);
console.log(data['list'][0].main['temp']);
// day 2
console.log(data['city']['name']);
console.log(data['list'][8].dt_txt);
console.log(data['list'][8].main['temp']);
// day 3
console.log(data['city']['name']);
console.log(data['list'][16].dt_txt);
console.log(data['list'][16].main['temp']);
// day 4
console.log(data['city']['name']);
console.log(data['list'][24].dt_txt);
console.log(data['list'][24].main['temp']);
// day 5
console.log(data['city']['name']);
console.log(data['list'][32].dt_txt);
console.log(data['list'][32].main['temp']);
});
I've tried to use for loop with key in object but unfortunately it doesn't display the data, cause of error undefined.