gpt4 book ai didi

json - 在 Google 表格中解析 JSON

转载 作者:行者123 更新时间:2023-12-05 03:01:16 29 4
gpt4 key购买 nike

我是第一次使用 JSON,所以请原谅我缺乏知识。

我正在尝试使用 JSON 文件在 Google 表格中填充数据。我只是不知道正确的语法。如何格式化 JSON 函数以正确访问数据并停止返回错误?

我正在尝试从这里提取数据:

https://eddb.io/archive/v6/bodies_recently.jsonl

进入 Google 表格。

我已经加载了 ImportJSON 脚本,并且我已经用一个非常小的 JSON 文件 ( http://date.jsontest.com/ ) 对其进行了测试,并且它像宣传的那样工作,使用这个函数:

=ImportJSON("http://date.jsontest.com", "/date")

但是,当我尝试将相同的函数与上面来自 eddb.io 的 JSON 一起使用时,我无法让它工作。

我想做的是将“名称”拉入 A1,然后将一些属性拉入列,如下所示:

name  id  type_name  rotational_period, etc. 

这是我的测试链接: https://docs.google.com/spreadsheets/d/1gCKpLcf-ytbPNcuQIIzxp1RMy7N5K8pD02hCLnL27qQ/edit?usp=sharing

最佳答案

这个解决方法怎么样?

问题原因:

当我看到 https://eddb.io/archive/v6/bodies_recently.jsonl 的 URL 时,我注意到文件的扩展名是 jsonl。所以当我检查从 https://eddb.io/archive/v6/bodies_recently.jsonl 中检索到的值时,发现这些值是 JSON 行。 Dimu Designs's comment已经提到了这一点.我也可以确认官方文件说 bodies_recently.jsonl 是行分隔的 JSON。

解决方法:

不幸的是,ImportJSON 无法直接解析 JSON 行的值。因此需要修改脚本作为解决方法。在您共享的电子表格中,ImportJSON 的脚本作为容器绑定(bind)脚本放置。在这次修改中,我修改了脚本。请修改如下。

来自:

可以在脚本编辑器的第 130 - 135 行看到以下函数。

function ImportJSONAdvanced(url, query, options, includeFunc, transformFunc) {
var jsondata = UrlFetchApp.fetch(url);
var object = JSON.parse(jsondata.getContentText());

return parseJSONObject_(object, query, options, includeFunc, transformFunc);
}

收件人:

请将上面的函数替换成下面的脚本,并保存脚本。然后,请再次将 =ImportJSON("https://eddb.io/archive/v6/bodies_recently.jsonl", "/id") 放入单元格。

function ImportJSONAdvanced(url, query, options, includeFunc, transformFunc) {
var jsondata = UrlFetchApp.fetch(url);
var object = jsondata.getContentText().match(/{[\w\s\S].+}/g).map(function(e) {return JSON.parse(e)}); // Modified

return parseJSONObject_(object, query, options, includeFunc, transformFunc);
}

结果:

enter image description here

注意事项:

  • 尽管此修改后的脚本适用于 https://eddb.io/archive/v6/bodies_recently.jsonl 中的值,但我不确定此修改后的脚本是否适用于所有 JSON 行值.对此我深表歉意。

引用资料:

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

关于json - 在 Google 表格中解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56047848/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com