从文件导入JSON-不是URL



我收到了一个JSON文件,其中包含来自美洲杯游艇的一场比赛的数据。如果这是正确的术语,它有22条"路径",来自游艇上的传感器。

每一个在线推荐都会回到";ImportJSON";在GitHub上。然而,我无法调整所提供的功能,使其能够从文件导入,而不是从URL访问JSON提要。

我还尝试将JSON文件作为文本文件导入,但它太大,并引发了异常。

带有ImportJSON脚本的电子表格的公共版本位于ACWS,json文件的副本位于boat1.json(55.8Mb(,压缩文件位于boat1.zip(3.9Mb(。

任何关于如何导入此JSON文件的建议都将非常受欢迎。

要使用任何导入函数,不能使用本地文件。您必须使用URL。不过,你的谷歌文件页面上的下载链接运行得很好。

谷歌目前将URLetchApp调用限制在50MB,因此无法直接导入。幸运的是,你的zip文件比这个小得多,而且应用程序脚本API恰好有一个解压功能。

您可以调整此应用程序脚本以满足您的需求:

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对象。要输出到单元格,请调用单元格中的函数,它将输出数据数组的内容。我不知道你想要json文件中的确切数据,但这应该足以让你开始。

最新更新