[英]How to Import Historical Data from Yahoo Finance into Google Sheets and make it Auto-Update?
[英]How to auto-update Google Spreadsheet with import data each month?
我想將英國警方的犯罪數據存儲到我所在地區。 英國警方每個月都會向police.uk提供新數據。 這有兩種方式:1。CSV。 我的區域的犯罪是這個可以下載為CSV( 1.和2. 2. JSON通過API。信息在這里 - 我還沒有解決這個問題。
問題:網頁和CSV僅顯示過去六個月的數據。 我想創建一個Google Drive電子表格,每月更新一次,以便持續添加最新數據,以便隨時保留所有數據。
我真的不知道如何解決這個問題,特別是在API方面。 我應該使用像ImportData,Google Spreadsheets的腳本編輯器這樣的標准電子表格函數,還是使用像Python這樣的編程語言,我不知道?
謝謝。
多么有趣! 我從來不知道警察有我們可以使用的數據API! 我建議使用Google Apps腳本,您可以使用它輕松導入JSON數據。
例如,要首先獲取數據,您可以使用URL提取服務,如下所示:
var data = UrlFetchApp.fetch("http://data.police.uk/api/crimes-street/all-crime?lat=52.629729&lng=-1.131592&date=2013-01");
這將返回原始JSON數據,供您根據自己的需要進行播放。
然后,您可以迭代對象,將它們添加到數組中以添加到電子表格中。 完整的功能可能如下所示。 我知道它非常凌亂。 現在我知道這個警察API存在我計划(當我得到一些空閑時間)設置類似的東西時,我會更新這個答案,當我有一個更好的解決方案,但我已經測試了下面的,它確實寫了所有的數據來自電子表格的URL。
function importPoliceData() {
var data = UrlFetchApp.fetch("http://data.police.uk/api/crimes-street/all-crime?lat=52.629729&lng=-1.131592&date=2013-01");
var jsonData = JSON.parse(data.getContentText());
var dataArray = [];
for(var i = 0; i < jsonData.length; i++){
var thisRow = [];
for(var a in jsonData[i]){
if(typeof jsonData[i][a] == 'object'){
for(var o in jsonData[i][a]){
if(typeof jsonData[i][a][o] == 'object'){
for( var p in jsonData[i][a][o]){
thisRow.push(jsonData[i][a][o][p]);
}
} else {
thisRow.push(jsonData[i][a][o]);
}
}
} else {
thisRow.push(jsonData[i][a]);
}
}
while(thisRow.length != 13){
thisRow.push("");
}
dataArray.push(thisRow);
}
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(1,1,dataArray.length, dataArray[0].length);
range.setValues(dataArray);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.