gpt4 book ai didi

json - 谷歌优化 : iterate over a JSON dictionary

转载 作者:行者123 更新时间:2023-12-04 20:17:15 26 4
gpt4 key购买 nike

我在 Google Refine 中有一些 JSON - http://mapit.mysociety.org/point/4326/0.1293497,51.5464828对于完整版,但缩写是这样的:

{1234: {'name': 'Barking', 'type': 'WMC'},
5678: {'name': 'England', 'type': 'EUR'} }

我只想提取具有(假定唯一的)类型 WMC 的对象的名称.

Parse JSON in Google Refine没有帮助,这是使用数组,而不是字典。

有什么建议我应该考虑解决这个问题吗?

编辑 :我不知道初始键是什么:我相信它们是我无法提前预测的唯一标识符。

最佳答案

Refine 目前不知道如何遍历 dict 的键,其中键是未知的(尽管我即将实现该功能)。

使其与当前实现一起工作的技巧是将 JSON 对象转换为 JSON 数组。以下 GREL 表达式将执行此操作,将结果解析为 JSON,遍历数组的所有元素并为您提供类型为“WMC”的名字。

filter(('['+(value.replace(/"[0-9]+":/,""))[1,-1]+']').parseJson(),v,v['type']=='WMC')[0]['name']

将该表达式与“基于此列添加列”命令一起使用以创建新的 WMC 名称列。如果这种类型的名称可能不止一个,而您想要所有这些名称,则可以添加一个 forEach 循环并按照以下方式加入
forEach(filter(('['+(value.replace(/"[0-9]+":/,""))[1,-1]+']').parseJson(),v,v['type']=='WMC'),x,x['name']).join('|')

这将为您提供一个管道分隔的名称列表,您可以使用“拆分多值单元格”将其拆分。

希望在下一个版本中它会更容易!

关于json - 谷歌优化 : iterate over a JSON dictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10782737/

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