www.tele.soumu.go.jp
件数取得API/一覧取得APIのリクエスト条件一覧
コード値一覧
地方公共団体コード
import urllib.parse
import requests
import pandas as pd
d = {
"ST": 1,
"DA": 1,
"SC": 1,
"DC": 2,
"OF": 2,
"OW": "FB_H",
"HCV": "38202",
}
parm = urllib.parse.urlencode(d, encoding="shift-jis")
r = requests.get("https://www.tele.soumu.go.jp/musen/list", parm)
data = r.json()
df = pd.json_normalize(data["musen"])
df
データラングリング
df["電波種類"] = (
df["detailInfo.radioSpec1"].str.replace(r"\\t", "\t").str.replace(r"\\n", "\n")
)
df0 = df["detailInfo.note"].str.strip().str.split(r"\\n", 2, expand=True)
df["無線局種補足"] = df0[0].str.strip().str.split(":", expand=True)[1]
df["総開設局数"] = (
df0[1].str.strip().str.split(":", expand=True)[1].str.replace(",", "").astype(int)
)
df1 = (
df0[2]
.str.strip()
.str.replace(r"\\n", "")
.str.extractall("(.+?)\(([0-9,]+?)\)")
.rename(columns={0: "自治体名", 1: "開設局数"})
)
df1["自治体名"] = df1["自治体名"].str.strip()
df1["開設局数"] = df1["開設局数"].str.strip().str.replace(",", "").astype(int)
df.drop("detailInfo.note", axis=1, inplace=True)
df2 = df1.droplevel("match").join(df)
df2.to_csv("output.csv", encoding="utf_8_sig")
df3 = df2.loc[df2["自治体名"] == "今治市", ["detailInfo.name", "電波種類", "無線局種補足", "開設局数"]]
df3.to_csv("imabari.csv", encoding="utf_8_sig")