jq を使ってみた
jq を使ってみた
json の結果を見やすく整形するツール。
だいぶ前に話題になっていたのを、ようやくサワれる感じ。
ここからはチュートリアルに沿って見ていく。
Twitter の 直近 5 個の json という単語を含む検索結果の tweet を拾ってくれる API を叩く。
curl 'http://search.twitter.com/search.json?q=json&rpp=5&include_entities=true'
これだと見難いので、適当に見やすくする。
これは、jq に '.' を渡せばよい
curl 'http://search.twitter.com/search.json?q=json&rpp=5&include_entities=true' | jq '.'
結果は、見るとわかるが results という配列の中に入っている。
そこで、results の一つ目の配列の要素をみてみる。
curl 'http://search.twitter.com/search.json?q=json&rpp=5&include_entities=true' | jq '.results[0]'
そうすると、直近の json を含む twitter の検索結果がとれた。
ここで、誰がどんなことを発言しているのかを切り抜きたい。
from_user 要素と text 要素が対応しているので、それらを切り出す。
curl 'http://search.twitter.com/search.json?q=json&rpp=5&include_entities=true' | jq '.results[0] | {from_user, text}'
すべての from_user 要素と text 要素を取り出す。
curl 'http://search.twitter.com/search.json?q=json&rpp=5&include_entities=true' | jq '.results[] | {from_user, text}'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
次のような返り値がある場合、次のようにパースできるらしい
{ "user_mentions": [], "urls": [{ "indices": [83, 103], "display_url": "bit.ly/StniqT", "expanded_url": "http://bit.ly/StniqT", "url": "http://t.co/28Jesbio" }], "hashtags": [ {"indices": [108, 114], "text": "Apple" }, {"indices": [121, 129], "text": "Awesome"} ] }
jq '.results[] | {from_user, text, urls: [.entities.urls[].url]}'