如何抓取JavaScript中的键值对 - Google Trends API
我正在使用google trends API最终将趋势数据导出到excel文件。问题是我只想提取关键字的格式化时间和值。如何抓取JavaScript中的键值对 - Google Trends API
JS不是我的强项。我如何只拉这些参数?或者有没有办法将这些参数分配给键值字典对?
谢谢。
JSON输出
{ "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"]
}
]
}
}
代码
'use strict'; const googleTrends = require('google-trends-api');
var animals = ['hamsters', 'puppies'];
for (var key in animals) {
console.log(animals[key]);
googleTrends.interestOverTime({
keyword: key,
startTime: new Date(Date.now() - (167.9 * 60 * 60 * 1000)),
granularTimeResolution: true,
}, function(err, results) {
if (err)
console.log('oh no error!', err);
else
console.log(results);
console.log("--------------------------")
});
}
回答:
这可能让您开始提取你想要什么:
theStuffIWant = []; for (each of output.default.timelineData) {
theStuffIWant.push({time: each.formattedTime, value: each.value[0]});
}
console.log(theStuffIWant);
// now you should have an array of the data you want.
注意,值看起来像他们在具有一个值的数组,因此需要使用[0]
索引。还要注意,变量output
应该替换为任何包含您的JSON数据的变量。
回答:
提取所需的数据转换成一个目的是遵循以功能性方式一键/值对图案与存在检查:
function extractTimeAndValue(data) { var timelineData = (data && data.default && data.default.timelineData) || [];
return timelineData.reduce(function(timeAndValueObject, timeline) {
var time = timeline.formattedTime;
var value = timeline.value;
return Object.assign(
{},
timeAndValueObject,
time && value ? {[time]: value} : {}
);
}, {});
}
以上是 如何抓取JavaScript中的键值对 - Google Trends API 的全部内容, 来源链接: utcz.com/qa/259635.html