2017-12-03 10 views
0

google trends APIを使用して、最終的にトレンドデータをExcelファイルにエクスポートしています。問題は、キーワードのformattedTimeと値のみを抽出することです。 Iveがこれをやろうとしている間に、resultsが適切に引き出されていないことにも気付きました。たとえば、APIの結果を空の辞書にプッシュしようとすると、空の配列が引き続き取得されます。結果をJavaScript辞書にプッシュできません

ありがとうございます。

'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"] 
     } 
    }] 
    } 
} 

答えて

1

を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("--------------------------") 
    } 
}); 
関連する問題