繁体   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