オープンデータとWeb API

気象庁の地球温暖化データ

オープンデータ(自由に使えるデータ)を使ってみましょう。例えばグラフの例:地球温暖化でも挙げた地球温暖化のデータを取得してグラフを描いてみます:

x = read.csv("https://www.data.jma.go.jp/cpdinfo/temp/list/csv/an_wld.csv",
             fileEncoding="SJIS")
matplot(x[1], x[2], type="o", pch=16, xlab="年", ylab="°C")
r = lm(x[[2]] ~ x[[1]])
summary(r) # 詳細な結果を出力
abline(r)  # 当てはめた直線をグラフに重ね書きする

このようなオープンデータは,ダウンロードして使うこともできますが,上のようにWebから直接取得して利用することもできます。また,URLの最後に ? でパラメータを指定して必要なデータを取り出す仕組みもよく使われます。このような利用形態をWeb APIといいます。APIはApplication Programming Interfaceの略です。Web APIはJSON形式でデータを返すのが最近の流行です。詳しくはPython版もご覧ください。

郵便番号検索API

株式会社アイビスが提供している郵便番号検索APIを使ってみましょう。

library(jsonlite)

url = "https://zipcloud.ibsnet.co.jp/api/search?zipcode=5140007"
data = read_json(url)
address = data$results[[1]]
cat(address$address1, address$address2, address$address3, "\n")

気象庁API

2021-02-24 13:00:00 のリニューアルによってさまざまなAPI(とは気象庁は言っていない)が使えるようになったようです。例:

url = "https://www.jma.go.jp/bosai/forecast/data/overview_forecast/240000.json"
data = read_json(url)
cat(data$headlineText, "\n")
cat(data$text, "\n")

openBD

カーリル版元ドットコムopenBDは書誌情報・書影を提供しています。

url = "https://api.openbd.jp/v1/get?isbn=978-4-7741-9690-9"
data = read_json(url)
cat("著者名:", data[[1]]$summary$author, "\n")
cat("書名:", data[[1]]$summary$title, "\n")
cat("出版社名:", data[[1]]$summary$publisher, "\n")
cat("出版年月:", data[[1]]$summary$pubdate, "\n")

HeartRails Express

ハートレイルズHeartRails Expressは路線/駅名データ等の地理情報を提供しています。

url = "https://express.heartrails.com/api/json?method=getLines&prefecture=三重県"
data = read_json(url)
cat("路線名一覧:\n")
for (i in data$response$line)
    cat(i, "\n")

url = "https://express.heartrails.com/api/json?method=getStations&line=近鉄名古屋線"
data = read_json(url)
cat("駅と経度・緯度:\n")
for (i in data$response$station)
    cat(i$name, i$x, i$y, "\n")

お菓子の虜

鳥山優子さんのコンビニお菓子の情報サイトお菓子の虜Web API

url = "https://sysbird.jp/toriko/api/?apikey=guest&format=json&keyword=マシュマロ"
data = read_json(url)
cat("菓子名・メーカー:\n")
for (i in data$item)
    cat(i$name, i$maker, "\n")