簡體   English   中英

從文件導入 JSON - 不是 URL

[英]Import JSON From File - Not URL

我收到了一份 JSON 文件,其中包含來自美洲杯游艇的數據,用於一場比賽。 如果這是正確的術語,它有 22 條“路徑”,來自游艇上的傳感器。

每個在線推薦都會從 GitHub 的“ImportJSON”返回腳本。 但是,我無法調整提供的功能以從文件導入,而不是從 URL 訪問 JSON 提要。

我也嘗試將 JSON 文件作為文本文件導入,但是它太大了,並且拋出了異常。

帶有 ImportJSON 腳本的電子表格的公共版本位於ACWS ,json 文件的副本位於boat1.json (55.8Mb) 以及壓縮文件位於boat1.ZADCDBD79A8D84175C223.9B192AADCF175C223.9bM2

任何有關如何導入此 JSON 文件的建議都將受到歡迎。

要使用任何導入 function,您不能使用本地文件。 您必須使用 URL。 不過,您的 Google 文件頁面的下載鏈接可以正常工作。

Google 目前將 URLFetchApp 調用限制為 50MB,因此無法直接導入。 幸運的是,您的 zip 文件比這小得多,而 Apps 腳本 API 恰好有一個解壓縮 function。

您可以調整此應用程序腳本以滿足您的需求:

function ImportMyZipFile()
{
  // Your zip file URL:
  const url = 'https://drive.google.com/u/0/uc?id=1Zz5Oc_ZbK5Ohk0YRU6LxG2GdfEskf10_&export=download';

  let blob = UrlFetchApp.fetch(url).getBlob();
  // Need this or unzip will throw an error
  blob.setContentType('application/zip');

  // Get the only file in the zip archive
  let unzipped = Utilities.unzip(blob)[0];

  // Parse file contents to JS object
  let contents = unzipped.getDataAsString();
  let parsed = JSON.parse(contents);

  // Do what you want with parsed here...

  return /* data array here */;
}

parsed現在包含您的 JavaScript object。 將 output 到單元格中,在單元格中調用 function,它將 output 中的數據數組的內容。 我不確切知道您想要 json 文件中的哪些數據,但這應該足以讓您入門。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM