gpt4 book ai didi

json - 在 Google Refine 中解析 JSON

转载 作者:行者123 更新时间:2023-12-04 12:11:36 25 4
gpt4 key购买 nike

我正在尝试使用 Google Refine 从数据科学工具包坐标 2politics API 的结果中提取特定元素。

这是示例单元格 #1:

[{"politics":[
{"type":"admin2","friendly_type":"country","code":"usa","name":"United States"},
{"type":"admin6","friendly_type":"county","code":"55_025","name":"Dane"},
{"type":"constituency","friendly_type":"constituency","code":"55_02","name":"Second district, WI"},
{"type":"admin5","friendly_type":"city","code":"55_48000","name":"Madison"},
{"type":"admin5","friendly_type":"city","code":"55_53675","name":"Monona"},
{"type":"admin4","friendly_type":"state","code":"us55","name":"Wisconsin"},
{"type":"neighborhood","friendly_type":"neighborhood","code":"Eastmorland|Madison|WI","name":"Eastmorland"}
],"location":{"longitude":"-89.3259404","latitude":"43.0859191"}}]

我在此列的基础上添加了一个列,使用此 GREL 语法提取了 Dane 县:
value.parseJson()[0]["politics"][1]["name"]

但是当我到达 Sample Cell #2 时,语法不再有效,因为 JSON 结果有点不同:
[{"politics":[
{"type":"admin2","friendly_type":"country","code":"usa","name":"United States"},
{"type":"constituency","friendly_type":"constituency","code":"55_05","name":"Fifth district, WI"},
{"type":"admin4","friendly_type":"state","code":"us55","name":"Wisconsin"},
{"type":"admin6","friendly_type":"county","code":"55_079","name":"Milwaukee"},
{"type":"admin5","friendly_type":"city","code":"55_84675","name":"Wauwatosa"},
{"type":"constituency","friendly_type":"constituency","code":"55_04","name":"Fourth district, WI"}
],"location":{"longitude":"-88.0075875","latitude":"43.0494572"}}]

有什么方法可以对 JSON 进行排序或对我的语法进行短语排序,以便在任何一种情况下都可以找到县?

更新

这是神奇的 GREL,它允许我按名称查找 JSON 字符串中的元素,而不仅仅是位置:
filter(value.parseJson()[0]["politics"], item, item["type"]=="admin6")[0]["name"]

最佳答案

名为 politics 的字段是一个数组,您返回它:

value.parseJson()[0]["politics"]

该数组的一个元素与县相关联(它是 friendly_type 字段为“县”的那个)。所以你需要过滤 politics字段来查找 friendly_type 的那个是县,像这样:
filter(value.parseJson()[0]["politics"], item, item["friendly_type"]=="county")

这将返回一个包含一个元素的数组。您想获得 name字段中的那个元素,所以你需要提取 name的第零个数组元素,使您的完整表达式:
filter(value.parseJson()[0]["politics"], item, item["friendly_type"]=="county")[0]["name"]

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

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