我正在使用google trends API最终将趋势数据导出到 Excel 文件。问题是我只想提取关键字的 formattedTime 和值。虽然我尝试这样做,但我也注意到 results
没有被正确拉动。例如,当我尝试将 API 的结果推送到空字典时,我继续得到一个空数组。
有什么想法吗?
谢谢。
'use strict';
const googleTrends = require('google-trends-api');
var something = [];
googleTrends.interestOverTime({
keyword: 'animals',
startTime: new Date(Date.now() - (1 * 60 * 60 * 1000)),
granularTimeResolution: true,
}, function(err, results) {
something.push(results);
if (err)
console.log('oh no error!', err);
else
console.log("--------------------------")
});
console.log(something);
提取数据的示例:
{
"default": {
"timelineData":[
{
"time":"1511629200",
"formattedTime":"Nov 25, 2017 at 12:00 PM",
"formattedAxisTime":"Nov 25 at 12:00 PM",
"value":[44],
"formattedValue":["44"]
},
{
"time":"1511632800",
"formattedTime":"Nov 25, 2017 at 1:00 PM",
"formattedAxisTime":"Nov 25 at 1:00 PM",
"value":[41],
"formattedValue":["41"]
}
}]
}
}
最佳答案
您对 Google 的调用是异步的,因此您需要在将结果推送到 something
的回调中注销结果。否则,您的 console.log(something)
实际上在回调完成之前运行,并且尚未将任何值推送到您的数组中。
'use strict';
const googleTrends = require('google-trends-api');
var something = [];
googleTrends.interestOverTime({
keyword: 'bitcoin',
startTime: new Date(Date.now() - (1 * 60 * 60 * 1000)),
granularTimeResolution: true,
}, function(err, results) {
something.push(results);
if (err)
console.log('oh no error!', err);
else{
console.log(something);
console.log("--------------------------")
}
});
关于javascript - 无法将结果推送到 JavaScript 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47619080/