我知道如何在中解析json单元,但是这个对我来说太棘手了。

我使用了一个API来提取4730 AirBNB的房间的日历,由他们的ID识别。
下面是一个Json文件的示例:条件
对于从现在到2017年11月的每一个ID和一年中的每一天,我想提取这个房间的可用性(正确还是错误)以及它的价格在这一天。

我不知道如何解析这些信息。我猜这意味着一系列嵌套的forEach,但是我无法找到正确的方法来使用来实现这一点。
我当然试过了,
forEach(value.parseJson().calendar_months, e, e.days) 结果是一连串的字典干扰了我。
任何帮助都会很感激的。如果操作过于困难,那么使用R(或Python)的解决方案对我来说也很好。
发布于 2016-11-21 09:25:33
我认为你走在正确的轨道上。产出:
forEach(value.parseJson().calendar_months, e, e.days) 很难阅读,因为OpenRefine和JSON都使用方括号来表示数组。从这个表达式中得到的是一个OR数组,它包含12项(一年中每个月一项)。OR数组中的项是JSON --每个项目都是一个月中的天数数组。
为了使这些步骤易于管理,我建议这样处理:
首次使用
forEach(value.parseJson().calendar_months,m,m.days).join("|")您必须使用“联接”,因为OR不能将OR数组直接存储在单元格中--它必须是字符串。
然后使用"Edit单元->拆分的多值单元格“-这将为每个ID获得12行,每个ID包含一个JSON表达式。现在,对于每个ID,在OR中有12行
然后使用:
forEach(value.parseJson(),d,d).join("|")这就将JSON分解为单独的几天
然后再次使用“编辑单元格->拆分多值单元格”将每天的细节分割成自己的单元格。
使用上面示例URL中的JSON (这为单个ID提供了441行),每个行都包含描述一天可用性和价格的JSON。此时,您可以使用ID列上的“填充”函数来填充每一行的ID。
您现在已经在每个单元中获得了一些非常简单的JSON,因此您可以使用
value.parseJson().available等。
发布于 2016-11-22 05:04:30
而不是仅仅将您的项目创建为文本,并使用GREL来解析.
最好的方法是选择您想要使用的JSON记录部分,使用我们针对JSON文件和XML文件的视觉导入向导(您甚至可以使用指向JSON文件的URL,如您的示例所示)。(视频教程展示了这里如何:https://www.youtube.com/watch?v=vUxdB-nl0Bw )


请随意使用此示例,使其更好,甚至更有帮助,将其添加到如何使用上的Wiki部分。
https://stackoverflow.com/questions/40715596
复制相似问题