Google Refineを使用して、DataScienceToolkitのcoordinates2politicsAPIの結果から特定の要素を抽出しようとしています。
これがサンプルセル#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"]
しかし、サンプルセル#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を並べ替えたり、構文を表現したりする方法はありますか?
アップデート
これが、位置だけでなく名前でJSON文字列内の要素を検索できるようにする魔法のGRELです。
filter(value.parseJson()[0]["politics"], item, item["type"]=="admin6")[0]["name"]