commit e0b21ac8063494e5b442370c68f7bba3f3c96c31 Author: Babibubebon Date: Tue Jun 18 03:09:22 2024 +0900 Initial commit diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..06f574e --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,18 @@ +name: Publish Python Package + +on: + push: + tags: + - "v*.*.*" + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Build and publish to pypi + uses: JRubics/poetry-publish@v2.0 + with: + pypi_token: ${{ secrets.PYPI_TOKEN }} + poetry_version: "==1.7.1" + ignore_dev_requirements: "yes" \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..71dd82f --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +__pycache__/ +*.py[cod] +*$py.class +.venv +.idea +data/ \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d328b72 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Babibubebon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..0546e14 --- /dev/null +++ b/README.md @@ -0,0 +1,97 @@ +# gBizINFO-LOD + +[gBizINFO](https://info.gbiz.go.jp/)が提供する[CSV形式のデータ](https://info.gbiz.go.jp/hojin/DownloadTop)からLinked Open Data(LOD)データセットを生成するためのツール + +## 使い方 + +変換元となる法人活動情報語彙対応版CSVファイル群のダウンロード +(注: 法人基本情報は全件の一括ダウンロードが不可のため時間がかかる) + +```shell +gbilod download ./work_dir/ +``` + +CSVファイル群をRDF(N-Triples形式)に変換 + +```shell +gbilod convert ./work_dir/ -o ./output_dir/ +``` + +[Graph URI](#graph-rui)毎にファイルが出力される + +## 変換仕様 + +基本的には以下の仕様書に基づく。 + +- gBizINFO SPARQL API仕様書: https://web.archive.org/web/2/https://info.gbiz.go.jp/api/document/API.pdf +- リソース定義書 (CSV, XMLスキーマ仕様書): https://info.gbiz.go.jp/common/data/resourceinfo.pdf + +### 仕様書との差異 + +仕様書上の定義と異なる、または未定義である箇所を以下にまとめる。 + +- 法人番号を表す `ic:ID/ic:体系` の目的語は `` + +``` +ex:Hojin [ + ; + "0123456789123" ; + a + ] ; +``` + +- 職場情報および財務情報における `hj:数量コレクション/hj:数量/hj:指標` の目的語はic:コード型の型付リテラル + - 提供されていたRDFデータがこのようになっており、互換性確保のためこの仕様を踏襲する。 + - 本来はリテラルではなく、 `http://hojin-info.go.jp/graph/commonCode` グラフ内で定義されているリソースへのURI参照を期待したものと思われる。 + +``` +ex:HojinShokuba [ + [ + "http://hojin-info.go.jp/code/職場情報/企業規模"^^ ; + "人" ; + 100.0 ; + a + ] +] +``` + +## Graph URI + +- 法人基本情報: `http://hojin-info.go.jp/graph/hojin` +- 補助金情報: `http://hojin-info.go.jp/graph/hojyokin` +- 調達情報: `http://hojin-info.go.jp/graph/chotatsu` +- 表彰情報: `http://hojin-info.go.jp/graph/hyosho` +- 届出認定情報: `http://hojin-info.go.jp/graph/todokede` +- 特許情報: `http://hojin-info.go.jp/graph/tokkyo` +- 職場情報: `http://hojin-info.go.jp/graph/shokuba` +- 財務情報: `http://hojin-info.go.jp/graph/zaimu` +- 共通コード: `http://hojin-info.go.jp/graph/commonCode` + +## 背景 + +かつてgBizINFOではSPARQL APIが提供されており、APIを利用することでRDF形式のデータにアクセスすることができた。 +また、RDFストアとしてAmazon Neptuneを採用し[^1]、実践的な運用ノウハウが公開されるなど[^2]、システム面でも有用な事例であった。 + +一方で、野村総合研究所が落札した「令和4年度経済産業省デジタルプラットフォーム構築事業( +Gビズインフォを通じた効果的なオープンデータ利活用の促進に向けた調査) +」の[報告書 (2023年3月17日)](https://www.meti.go.jp/meti_lib/report/2022FY/000235.pdf) +によると、LOD形式でのデータ提供について以下のような実態を指摘しており、公共データ分野でのLODの一定のニーズは認めているものの、SPARQL APIエンドポイントの存続有無の検討が必要と結論づけている。 + +``` +現行Gビズインフォにおける、利用者の期待と現状 +機能 - SPARQL API +実態: 法人データにおいてはLODの普及度が低いため、活用されているとは言いがたい。 +利用者からの評価: △ インタビュー先のうち多数は知らない・知っているが使いにくいので使わないといった評価であった。 +``` + +2023年10月31日にはgBizINFOサイト上でRDF形式データの提供廃止が告知され、2024年4月1日に完全廃止となった[^3]。 + +[^1]: [AWS 導入事例:経済産業省](https://aws.amazon.com/jp/solutions/case-studies/meti/) +[^2]: [経済産業省のデジタル化とgBizINFOの展開 2020年8⽉](https://pages.awscloud.com/rs/112-TZM-766/images/Session%204%20-%20gBizINFO.pdf) +[^3]: [RDF廃止(サービス終了)のお知らせ](https://info.gbiz.go.jp/html/RdfStop.html) + +## License + +本リポジトリに含まれる [`commonCode.ttl`](commonCode.ttl) を除くリソースは、MIT Licenseで提供される。 + +`commonCode.ttl` は、「[gBizINFO](https://info.gbiz.go.jp/)」(経済産業省)のSPARQL APIより取得・加工して作成したもので、[経済産業省 利用規約](https://www.meti.go.jp/main/rules.html)に従い利用するものである。 diff --git a/commonCode.ttl b/commonCode.ttl new file mode 100644 index 0000000..d1a213c --- /dev/null +++ b/commonCode.ttl @@ -0,0 +1,12508 @@ + + "http://hojin-info.go.jp/code/職場情報" ; + "職場情報" ; + "職場情報" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "企業規模" ; + "企業規模" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "企業規模詳細(女性)" ; + "企業規模詳細(女性)" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "企業規模詳細(男性)" ; + "企業規模詳細(男性)" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "女性労働者割合" ; + "女性労働者割合" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "女性平均継続勤務年数" ; + "女性平均継続勤務年数" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "女性役員人数" ; + "女性役員人数" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "女性管理職人数" ; + "女性管理職人数" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "役員人数" ; + "役員人数" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "従業員平均年齢" ; + "従業員平均年齢" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "月平均所定外労働時間" ; + "月平均所定外労働時間" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "正社員平均継続勤務年数" ; + "正社員平均継続勤務年数" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "男性平均継続勤務年数" ; + "男性平均継続勤務年数" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "管理職人数" ; + "管理職人数" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "育児休業取得者数(女性)" ; + "育児休業取得者数(女性)" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "育児休業取得者数(男性)" ; + "育児休業取得者数(男性)" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "育児休業対象者数(女性)" ; + "育児休業対象者数(女性)" ; + a . + + + "http://hojin-info.go.jp/code/職場情報" ; + "育児休業対象者数(男性)" ; + "育児休業対象者数(男性)" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "財務情報" ; + "財務情報" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "営業収入" ; + "営業収入" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "営業収益" ; + "営業収益" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "営業総収入" ; + "営業総収入" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "売上高" ; + "売上高" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "当期純利益又は当期純損失" ; + "当期純利益又は当期純損失" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "従業員数" ; + "従業員数" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "正味収入保険料" ; + "正味収入保険料" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "純資産額" ; + "純資産額" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "経常利益又は経常損失" ; + "経常利益又は経常損失" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "経常収益" ; + "経常収益" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "総資産額" ; + "総資産額" ; + a . + + + "http://hojin-info.go.jp/code/財務情報" ; + "資本金" ; + "資本金" ; + a . + + + ; + "衣服・その他繊維製品類" ; + "101" ; + a . + + + ; + "ゴム・皮革・プラスチック製品類" ; + "102" ; + a . + + + ; + "窯業・土石製品類" ; + "103" ; + a . + + + ; + "非鉄金属・金属製品類" ; + "104" ; + a . + + + ; + "フォーム印刷" ; + "105" ; + a . + + + ; + "その他印刷類" ; + "106" ; + a . + + + ; + "図書類" ; + "107" ; + a . + + + ; + "電子出版物類" ; + "108" ; + a . + + + ; + "紙・紙加工品類" ; + "109" ; + a . + + + ; + "車両類" ; + "110" ; + a . + + + ; + "その他輸送・搬送機械器具類" ; + "111" ; + a . + + + ; + "船舶類" ; + "112" ; + a . + + + ; + "燃料類" ; + "113" ; + a . + + + ; + "家具・什器類" ; + "114" ; + a . + + + ; + "一般・産業用機器類" ; + "115" ; + a . + + + ; + "電気・通信用機器類" ; + "116" ; + a . + + + ; + "電子計算機類" ; + "117" ; + a . + + + ; + "精密機器類" ; + "118" ; + a . + + + ; + "医療用機器類" ; + "119" ; + a . + + + ; + "事務用機器類" ; + "120" ; + a . + + + ; + "その他機器類" ; + "121" ; + a . + + + ; + "医薬品・医療用品類" ; + "122" ; + a . + + + ; + "事務用品類" ; + "123" ; + a . + + + ; + "土木・建設・建築材料" ; + "124" ; + a . + + + ; + "警察用装備品類" ; + "127" ; + a . + + + ; + "防衛用装備品類" ; + "128" ; + a . + + + ; + "その他" ; + "129" ; + a . + + + ; + "衣服・その他繊維製品類" ; + "201" ; + a . + + + ; + "ゴム・皮革・プラスチック製品類" ; + "202" ; + a . + + + ; + "窯業・土石製品類" ; + "203" ; + a . + + + ; + "非鉄金属・金属製品類" ; + "204" ; + a . + + + ; + "フォーム印刷" ; + "205" ; + a . + + + ; + "その他印刷類" ; + "206" ; + a . + + + ; + "図書類" ; + "207" ; + a . + + + ; + "電子出版物類" ; + "208" ; + a . + + + ; + "紙・紙加工品類" ; + "209" ; + a . + + + ; + "車両類" ; + "210" ; + a . + + + ; + "その他輸送・搬送機械器具類" ; + "211" ; + a . + + + ; + "船舶類" ; + "212" ; + a . + + + ; + "燃料類" ; + "213" ; + a . + + + ; + "家具・什器類" ; + "214" ; + a . + + + ; + "一般・産業用機器類" ; + "215" ; + a . + + + ; + "電気・通信用機器類" ; + "216" ; + a . + + + ; + "電子計算機類" ; + "217" ; + a . + + + ; + "精密機器類" ; + "218" ; + a . + + + ; + "医療用機器類" ; + "219" ; + a . + + + ; + "事務用機器類" ; + "220" ; + a . + + + ; + "その他機器類" ; + "221" ; + a . + + + ; + "医薬品・医療用品類" ; + "222" ; + a . + + + ; + "事務用品類" ; + "223" ; + a . + + + ; + "土木・建設・建築材料" ; + "224" ; + a . + + + ; + "警察用装備品類" ; + "227" ; + a . + + + ; + "防衛用装備品類" ; + "228" ; + a . + + + ; + "その他" ; + "229" ; + a . + + + ; + "広告・宣伝" ; + "301" ; + a . + + + ; + "写真・製図" ; + "302" ; + a . + + + ; + "調査・研究" ; + "303" ; + a . + + + ; + "情報処理" ; + "304" ; + a . + + + ; + "翻訳・通訳・速記" ; + "305" ; + a . + + + ; + "ソフトウェア開発" ; + "306" ; + a . + + + ; + "会場等の借り上げ" ; + "307" ; + a . + + + ; + "賃貸借" ; + "308" ; + a . + + + ; + "建物管理等各種保守管理" ; + "309" ; + a . + + + ; + "運送" ; + "310" ; + a . + + + ; + "車両整備" ; + "311" ; + a . + + + ; + "船舶整備" ; + "312" ; + a . + + + ; + "電子出版" ; + "313" ; + a . + + + ; + "防衛用装備品類の整備" ; + "314" ; + a . + + + ; + "その他" ; + "315" ; + a . + + + ; + "立木竹" ; + "401" ; + a . + + + ; + "その他" ; + "402" ; + a . + + + ; + [ + "営業品目" ; + a + ] ; + ; + a . + + + ; + "1973/04/01" ; + [ + "都道府県コード (JIS X 0401)" ; + a + ] ; + [ + [ + "日本工業標準調査会" ; + a + ] ; + a + ] ; + a . + + + ; + "北海道"@ja ; + "01" ; + a . + + + ; + "青森県"@ja ; + "02" ; + a . + + + ; + "岩手県"@ja ; + "03" ; + a . + + + ; + "宮城県"@ja ; + "04" ; + a . + + + ; + "秋田県"@ja ; + "05" ; + a . + + + ; + "山形県"@ja ; + "06" ; + a . + + + ; + "福島県"@ja ; + "07" ; + a . + + + ; + "茨城県"@ja ; + "08" ; + a . + + + ; + "栃木県"@ja ; + "09" ; + a . + + + ; + "群馬県"@ja ; + "10" ; + a . + + + ; + "埼玉県"@ja ; + "11" ; + a . + + + ; + "千葉県"@ja ; + "12" ; + a . + + + ; + "東京都"@ja ; + "13" ; + a . + + + ; + "神奈川県"@ja ; + "14" ; + a . + + + ; + "新潟県"@ja ; + "15" ; + a . + + + ; + "富山県"@ja ; + "16" ; + a . + + + ; + "石川県"@ja ; + "17" ; + a . + + + ; + "福井県"@ja ; + "18" ; + a . + + + ; + "山梨県"@ja ; + "19" ; + a . + + + ; + "長野県"@ja ; + "20" ; + a . + + + ; + "岐阜県"@ja ; + "21" ; + a . + + + ; + "静岡県"@ja ; + "22" ; + a . + + + ; + "愛知県"@ja ; + "23" ; + a . + + + ; + "三重県"@ja ; + "24" ; + a . + + + ; + "滋賀県"@ja ; + "25" ; + a . + + + ; + "京都府"@ja ; + "26" ; + a . + + + ; + "大阪府"@ja ; + "27" ; + a . + + + ; + "兵庫県"@ja ; + "28" ; + a . + + + ; + "奈良県"@ja ; + "29" ; + a . + + + ; + "和歌山県"@ja ; + "30" ; + a . + + + ; + "鳥取県"@ja ; + "31" ; + a . + + + ; + "島根県"@ja ; + "32" ; + a . + + + ; + "岡山県"@ja ; + "33" ; + a . + + + ; + "広島県"@ja ; + "34" ; + a . + + + ; + "山口県"@ja ; + "35" ; + a . + + + ; + "徳島県"@ja ; + "36" ; + a . + + + ; + "香川県"@ja ; + "37" ; + a . + + + ; + "愛媛県"@ja ; + "38" ; + a . + + + ; + "高知県"@ja ; + "39" ; + a . + + + ; + "福岡県"@ja ; + "40" ; + a . + + + ; + "佐賀県"@ja ; + "41" ; + a . + + + ; + "長崎県"@ja ; + "42" ; + a . + + + ; + "熊本県"@ja ; + "43" ; + a . + + + ; + "大分県"@ja ; + "44" ; + a . + + + ; + "宮崎県"@ja ; + "45" ; + a . + + + ; + "鹿児島県"@ja ; + "46" ; + a . + + + ; + "沖縄県"@ja ; + "47" ; + a . + + + ; + "2010/05/20" ; + [ + "市区町村コード (JIS X 0402)" ; + a + ] ; + [ + [ + "日本工業標準調査会" ; + a + ] ; + a + ] ; + a . + + + ; + "北海道札幌市"@ja ; + "01100" ; + a . + + + ; + "北海道札幌市中央区"@ja ; + "01101" ; + a . + + + ; + "北海道札幌市北区"@ja ; + "01102" ; + a . + + + ; + "北海道札幌市東区"@ja ; + "01103" ; + a . + + + ; + "北海道札幌市白石区"@ja ; + "01104" ; + a . + + + ; + "北海道札幌市豊平区"@ja ; + "01105" ; + a . + + + ; + "北海道札幌市南区"@ja ; + "01106" ; + a . + + + ; + "北海道札幌市西区"@ja ; + "01107" ; + a . + + + ; + "北海道札幌市厚別区"@ja ; + "01108" ; + a . + + + ; + "北海道札幌市手稲区"@ja ; + "01109" ; + a . + + + ; + "北海道札幌市清田区"@ja ; + "01110" ; + a . + + + ; + "北海道函館市"@ja ; + "01202" ; + a . + + + ; + "北海道小樽市"@ja ; + "01203" ; + a . + + + ; + "北海道旭川市"@ja ; + "01204" ; + a . + + + ; + "北海道室蘭市"@ja ; + "01205" ; + a . + + + ; + "北海道釧路市"@ja ; + "01206" ; + a . + + + ; + "北海道帯広市"@ja ; + "01207" ; + a . + + + ; + "北海道北見市"@ja ; + "01208" ; + a . + + + ; + "北海道夕張市"@ja ; + "01209" ; + a . + + + ; + "北海道岩見沢市"@ja ; + "01210" ; + a . + + + ; + "北海道網走市"@ja ; + "01211" ; + a . + + + ; + "北海道留萌市"@ja ; + "01212" ; + a . + + + ; + "北海道苫小牧市"@ja ; + "01213" ; + a . + + + ; + "北海道稚内市"@ja ; + "01214" ; + a . + + + ; + "北海道美唄市"@ja ; + "01215" ; + a . + + + ; + "北海道芦別市"@ja ; + "01216" ; + a . + + + ; + "北海道江別市"@ja ; + "01217" ; + a . + + + ; + "北海道赤平市"@ja ; + "01218" ; + a . + + + ; + "北海道紋別市"@ja ; + "01219" ; + a . + + + ; + "北海道士別市"@ja ; + "01220" ; + a . + + + ; + "北海道名寄市"@ja ; + "01221" ; + a . + + + ; + "北海道三笠市"@ja ; + "01222" ; + a . + + + ; + "北海道根室市"@ja ; + "01223" ; + a . + + + ; + "北海道千歳市"@ja ; + "01224" ; + a . + + + ; + "北海道滝川市"@ja ; + "01225" ; + a . + + + ; + "北海道砂川市"@ja ; + "01226" ; + a . + + + ; + "北海道歌志内市"@ja ; + "01227" ; + a . + + + ; + "北海道深川市"@ja ; + "01228" ; + a . + + + ; + "北海道富良野市"@ja ; + "01229" ; + a . + + + ; + "北海道登別市"@ja ; + "01230" ; + a . + + + ; + "北海道恵庭市"@ja ; + "01231" ; + a . + + + ; + "北海道伊達市"@ja ; + "01233" ; + a . + + + ; + "北海道北広島市"@ja ; + "01234" ; + a . + + + ; + "北海道石狩市"@ja ; + "01235" ; + a . + + + ; + "北海道北斗市"@ja ; + "01236" ; + a . + + + ; + "北海道当別町"@ja ; + "01303" ; + a . + + + ; + "北海道新篠津村"@ja ; + "01304" ; + a . + + + ; + "北海道松前町"@ja ; + "01331" ; + a . + + + ; + "北海道福島町"@ja ; + "01332" ; + a . + + + ; + "北海道知内町"@ja ; + "01333" ; + a . + + + ; + "北海道木古内町"@ja ; + "01334" ; + a . + + + ; + "北海道七飯町"@ja ; + "01337" ; + a . + + + ; + "北海道鹿部町"@ja ; + "01343" ; + a . + + + ; + "北海道森町"@ja ; + "01345" ; + a . + + + ; + "北海道八雲町"@ja ; + "01346" ; + a . + + + ; + "北海道長万部町"@ja ; + "01347" ; + a . + + + ; + "北海道江差町"@ja ; + "01361" ; + a . + + + ; + "北海道上ノ国町"@ja ; + "01362" ; + a . + + + ; + "北海道厚沢部町"@ja ; + "01363" ; + a . + + + ; + "北海道乙部町"@ja ; + "01364" ; + a . + + + ; + "北海道奥尻町"@ja ; + "01367" ; + a . + + + ; + "北海道今金町"@ja ; + "01370" ; + a . + + + ; + "北海道せたな町"@ja ; + "01371" ; + a . + + + ; + "北海道島牧村"@ja ; + "01391" ; + a . + + + ; + "北海道寿都町"@ja ; + "01392" ; + a . + + + ; + "北海道黒松内町"@ja ; + "01393" ; + a . + + + ; + "北海道蘭越町"@ja ; + "01394" ; + a . + + + ; + "北海道ニセコ町"@ja ; + "01395" ; + a . + + + ; + "北海道真狩村"@ja ; + "01396" ; + a . + + + ; + "北海道留寿都村"@ja ; + "01397" ; + a . + + + ; + "北海道喜茂別町"@ja ; + "01398" ; + a . + + + ; + "北海道京極町"@ja ; + "01399" ; + a . + + + ; + "北海道倶知安町"@ja ; + "01400" ; + a . + + + ; + "北海道共和町"@ja ; + "01401" ; + a . + + + ; + "北海道岩内町"@ja ; + "01402" ; + a . + + + ; + "北海道泊村"@ja ; + "01403" ; + a . + + + ; + "北海道神恵内村"@ja ; + "01404" ; + a . + + + ; + "北海道積丹町"@ja ; + "01405" ; + a . + + + ; + "北海道古平町"@ja ; + "01406" ; + a . + + + ; + "北海道仁木町"@ja ; + "01407" ; + a . + + + ; + "北海道余市町"@ja ; + "01408" ; + a . + + + ; + "北海道赤井川村"@ja ; + "01409" ; + a . + + + ; + "北海道南幌町"@ja ; + "01423" ; + a . + + + ; + "北海道奈井江町"@ja ; + "01424" ; + a . + + + ; + "北海道上砂川町"@ja ; + "01425" ; + a . + + + ; + "北海道由仁町"@ja ; + "01427" ; + a . + + + ; + "北海道長沼町"@ja ; + "01428" ; + a . + + + ; + "北海道栗山町"@ja ; + "01429" ; + a . + + + ; + "北海道月形町"@ja ; + "01430" ; + a . + + + ; + "北海道浦臼町"@ja ; + "01431" ; + a . + + + ; + "北海道新十津川町"@ja ; + "01432" ; + a . + + + ; + "北海道妹背牛町"@ja ; + "01433" ; + a . + + + ; + "北海道秩父別町"@ja ; + "01434" ; + a . + + + ; + "北海道雨竜町"@ja ; + "01436" ; + a . + + + ; + "北海道北竜町"@ja ; + "01437" ; + a . + + + ; + "北海道沼田町"@ja ; + "01438" ; + a . + + + ; + "北海道鷹栖町"@ja ; + "01452" ; + a . + + + ; + "北海道東神楽町"@ja ; + "01453" ; + a . + + + ; + "北海道当麻町"@ja ; + "01454" ; + a . + + + ; + "北海道比布町"@ja ; + "01455" ; + a . + + + ; + "北海道愛別町"@ja ; + "01456" ; + a . + + + ; + "北海道上川町"@ja ; + "01457" ; + a . + + + ; + "北海道東川町"@ja ; + "01458" ; + a . + + + ; + "北海道美瑛町"@ja ; + "01459" ; + a . + + + ; + "北海道上富良野町"@ja ; + "01460" ; + a . + + + ; + "北海道中富良野町"@ja ; + "01461" ; + a . + + + ; + "北海道南富良野町"@ja ; + "01462" ; + a . + + + ; + "北海道占冠村"@ja ; + "01463" ; + a . + + + ; + "北海道和寒町"@ja ; + "01464" ; + a . + + + ; + "北海道剣淵町"@ja ; + "01465" ; + a . + + + ; + "北海道下川町"@ja ; + "01468" ; + a . + + + ; + "北海道美深町"@ja ; + "01469" ; + a . + + + ; + "北海道音威子府村"@ja ; + "01470" ; + a . + + + ; + "北海道中川町"@ja ; + "01471" ; + a . + + + ; + "北海道幌加内町"@ja ; + "01472" ; + a . + + + ; + "北海道増毛町"@ja ; + "01481" ; + a . + + + ; + "北海道小平町"@ja ; + "01482" ; + a . + + + ; + "北海道苫前町"@ja ; + "01483" ; + a . + + + ; + "北海道羽幌町"@ja ; + "01484" ; + a . + + + ; + "北海道初山別村"@ja ; + "01485" ; + a . + + + ; + "北海道遠別町"@ja ; + "01486" ; + a . + + + ; + "北海道天塩町"@ja ; + "01487" ; + a . + + + ; + "北海道猿払村"@ja ; + "01511" ; + a . + + + ; + "北海道浜頓別町"@ja ; + "01512" ; + a . + + + ; + "北海道中頓別町"@ja ; + "01513" ; + a . + + + ; + "北海道枝幸町"@ja ; + "01514" ; + a . + + + ; + "北海道豊富町"@ja ; + "01516" ; + a . + + + ; + "北海道礼文町"@ja ; + "01517" ; + a . + + + ; + "北海道利尻町"@ja ; + "01518" ; + a . + + + ; + "北海道利尻富士町"@ja ; + "01519" ; + a . + + + ; + "北海道幌延町"@ja ; + "01520" ; + a . + + + ; + "北海道美幌町"@ja ; + "01543" ; + a . + + + ; + "北海道津別町"@ja ; + "01544" ; + a . + + + ; + "北海道斜里町"@ja ; + "01545" ; + a . + + + ; + "北海道清里町"@ja ; + "01546" ; + a . + + + ; + "北海道小清水町"@ja ; + "01547" ; + a . + + + ; + "北海道訓子府町"@ja ; + "01549" ; + a . + + + ; + "北海道置戸町"@ja ; + "01550" ; + a . + + + ; + "北海道佐呂間町"@ja ; + "01552" ; + a . + + + ; + "北海道遠軽町"@ja ; + "01555" ; + a . + + + ; + "北海道湧別町"@ja ; + "01559" ; + a . + + + ; + "北海道滝上町"@ja ; + "01560" ; + a . + + + ; + "北海道興部町"@ja ; + "01561" ; + a . + + + ; + "北海道西興部村"@ja ; + "01562" ; + a . + + + ; + "北海道雄武町"@ja ; + "01563" ; + a . + + + ; + "北海道大空町"@ja ; + "01564" ; + a . + + + ; + "北海道豊浦町"@ja ; + "01571" ; + a . + + + ; + "北海道壮瞥町"@ja ; + "01575" ; + a . + + + ; + "北海道白老町"@ja ; + "01578" ; + a . + + + ; + "北海道厚真町"@ja ; + "01581" ; + a . + + + ; + "北海道洞爺湖町"@ja ; + "01584" ; + a . + + + ; + "北海道安平町"@ja ; + "01585" ; + a . + + + ; + "北海道むかわ町"@ja ; + "01586" ; + a . + + + ; + "北海道日高町"@ja ; + "01601" ; + a . + + + ; + "北海道平取町"@ja ; + "01602" ; + a . + + + ; + "北海道新冠町"@ja ; + "01604" ; + a . + + + ; + "北海道浦河町"@ja ; + "01607" ; + a . + + + ; + "北海道様似町"@ja ; + "01608" ; + a . + + + ; + "北海道えりも町"@ja ; + "01609" ; + a . + + + ; + "北海道新ひだか町"@ja ; + "01610" ; + a . + + + ; + "北海道音更町"@ja ; + "01631" ; + a . + + + ; + "北海道士幌町"@ja ; + "01632" ; + a . + + + ; + "北海道上士幌町"@ja ; + "01633" ; + a . + + + ; + "北海道鹿追町"@ja ; + "01634" ; + a . + + + ; + "北海道新得町"@ja ; + "01635" ; + a . + + + ; + "北海道清水町"@ja ; + "01636" ; + a . + + + ; + "北海道芽室町"@ja ; + "01637" ; + a . + + + ; + "北海道中札内村"@ja ; + "01638" ; + a . + + + ; + "北海道更別村"@ja ; + "01639" ; + a . + + + ; + "北海道大樹町"@ja ; + "01641" ; + a . + + + ; + "北海道広尾町"@ja ; + "01642" ; + a . + + + ; + "北海道幕別町"@ja ; + "01643" ; + a . + + + ; + "北海道池田町"@ja ; + "01644" ; + a . + + + ; + "北海道豊頃町"@ja ; + "01645" ; + a . + + + ; + "北海道本別町"@ja ; + "01646" ; + a . + + + ; + "北海道足寄町"@ja ; + "01647" ; + a . + + + ; + "北海道陸別町"@ja ; + "01648" ; + a . + + + ; + "北海道浦幌町"@ja ; + "01649" ; + a . + + + ; + "北海道釧路町"@ja ; + "01661" ; + a . + + + ; + "北海道厚岸町"@ja ; + "01662" ; + a . + + + ; + "北海道浜中町"@ja ; + "01663" ; + a . + + + ; + "北海道標茶町"@ja ; + "01664" ; + a . + + + ; + "北海道弟子屈町"@ja ; + "01665" ; + a . + + + ; + "北海道鶴居村"@ja ; + "01667" ; + a . + + + ; + "北海道白糠町"@ja ; + "01668" ; + a . + + + ; + "北海道別海町"@ja ; + "01691" ; + a . + + + ; + "北海道中標津町"@ja ; + "01692" ; + a . + + + ; + "北海道標津町"@ja ; + "01693" ; + a . + + + ; + "北海道羅臼町"@ja ; + "01694" ; + a . + + + ; + "青森県青森市"@ja ; + "02201" ; + a . + + + ; + "青森県弘前市"@ja ; + "02202" ; + a . + + + ; + "青森県八戸市"@ja ; + "02203" ; + a . + + + ; + "青森県黒石市"@ja ; + "02204" ; + a . + + + ; + "青森県五所川原市"@ja ; + "02205" ; + a . + + + ; + "青森県十和田市"@ja ; + "02206" ; + a . + + + ; + "青森県三沢市"@ja ; + "02207" ; + a . + + + ; + "青森県むつ市"@ja ; + "02208" ; + a . + + + ; + "青森県つがる市"@ja ; + "02209" ; + a . + + + ; + "青森県平川市"@ja ; + "02210" ; + a . + + + ; + "青森県平内町"@ja ; + "02301" ; + a . + + + ; + "青森県今別町"@ja ; + "02303" ; + a . + + + ; + "青森県蓬田村"@ja ; + "02304" ; + a . + + + ; + "青森県外ヶ浜町"@ja ; + "02307" ; + a . + + + ; + "青森県鰺ヶ沢町"@ja ; + "02321" ; + a . + + + ; + "青森県深浦町"@ja ; + "02323" ; + a . + + + ; + "青森県西目屋村"@ja ; + "02343" ; + a . + + + ; + "青森県藤崎町"@ja ; + "02361" ; + a . + + + ; + "青森県大鰐町"@ja ; + "02362" ; + a . + + + ; + "青森県田舎館村"@ja ; + "02367" ; + a . + + + ; + "青森県板柳町"@ja ; + "02381" ; + a . + + + ; + "青森県鶴田町"@ja ; + "02384" ; + a . + + + ; + "青森県中泊町"@ja ; + "02387" ; + a . + + + ; + "青森県野辺地町"@ja ; + "02401" ; + a . + + + ; + "青森県七戸町"@ja ; + "02402" ; + a . + + + ; + "青森県六戸町"@ja ; + "02405" ; + a . + + + ; + "青森県横浜町"@ja ; + "02406" ; + a . + + + ; + "青森県東北町"@ja ; + "02408" ; + a . + + + ; + "青森県六ヶ所村"@ja ; + "02411" ; + a . + + + ; + "青森県おいらせ町"@ja ; + "02412" ; + a . + + + ; + "青森県大間町"@ja ; + "02423" ; + a . + + + ; + "青森県東通村"@ja ; + "02424" ; + a . + + + ; + "青森県風間浦村"@ja ; + "02425" ; + a . + + + ; + "青森県佐井村"@ja ; + "02426" ; + a . + + + ; + "青森県三戸町"@ja ; + "02441" ; + a . + + + ; + "青森県五戸町"@ja ; + "02442" ; + a . + + + ; + "青森県田子町"@ja ; + "02443" ; + a . + + + ; + "青森県南部町"@ja ; + "02445" ; + a . + + + ; + "青森県階上町"@ja ; + "02446" ; + a . + + + ; + "青森県新郷村"@ja ; + "02450" ; + a . + + + ; + "岩手県盛岡市"@ja ; + "03201" ; + a . + + + ; + "岩手県宮古市"@ja ; + "03202" ; + a . + + + ; + "岩手県大船渡市"@ja ; + "03203" ; + a . + + + ; + "岩手県花巻市"@ja ; + "03205" ; + a . + + + ; + "岩手県北上市"@ja ; + "03206" ; + a . + + + ; + "岩手県久慈市"@ja ; + "03207" ; + a . + + + ; + "岩手県遠野市"@ja ; + "03208" ; + a . + + + ; + "岩手県一関市"@ja ; + "03209" ; + a . + + + ; + "岩手県陸前高田市"@ja ; + "03210" ; + a . + + + ; + "岩手県釜石市"@ja ; + "03211" ; + a . + + + ; + "岩手県二戸市"@ja ; + "03213" ; + a . + + + ; + "岩手県八幡平市"@ja ; + "03214" ; + a . + + + ; + "岩手県奥州市"@ja ; + "03215" ; + a . + + + ; + "岩手県滝沢市"@ja ; + "03216" ; + a . + + + ; + "岩手県雫石町"@ja ; + "03301" ; + a . + + + ; + "岩手県葛巻町"@ja ; + "03302" ; + a . + + + ; + "岩手県岩手町"@ja ; + "03303" ; + a . + + + ; + "岩手県紫波町"@ja ; + "03321" ; + a . + + + ; + "岩手県矢巾町"@ja ; + "03322" ; + a . + + + ; + "岩手県西和賀町"@ja ; + "03366" ; + a . + + + ; + "岩手県金ケ崎町"@ja ; + "03381" ; + a . + + + ; + "岩手県平泉町"@ja ; + "03402" ; + a . + + + ; + "岩手県住田町"@ja ; + "03441" ; + a . + + + ; + "岩手県大槌町"@ja ; + "03461" ; + a . + + + ; + "岩手県山田町"@ja ; + "03482" ; + a . + + + ; + "岩手県岩泉町"@ja ; + "03483" ; + a . + + + ; + "岩手県田野畑村"@ja ; + "03484" ; + a . + + + ; + "岩手県普代村"@ja ; + "03485" ; + a . + + + ; + "岩手県軽米町"@ja ; + "03501" ; + a . + + + ; + "岩手県野田村"@ja ; + "03503" ; + a . + + + ; + "岩手県九戸村"@ja ; + "03506" ; + a . + + + ; + "岩手県洋野町"@ja ; + "03507" ; + a . + + + ; + "岩手県一戸町"@ja ; + "03524" ; + a . + + + ; + "宮城県仙台市"@ja ; + "04100" ; + a . + + + ; + "宮城県仙台市青葉区"@ja ; + "04101" ; + a . + + + ; + "宮城県仙台市宮城野区"@ja ; + "04102" ; + a . + + + ; + "宮城県仙台市若林区"@ja ; + "04103" ; + a . + + + ; + "宮城県仙台市太白区"@ja ; + "04104" ; + a . + + + ; + "宮城県仙台市泉区"@ja ; + "04105" ; + a . + + + ; + "宮城県石巻市"@ja ; + "04202" ; + a . + + + ; + "宮城県塩竈市"@ja ; + "04203" ; + a . + + + ; + "宮城県気仙沼市"@ja ; + "04205" ; + a . + + + ; + "宮城県白石市"@ja ; + "04206" ; + a . + + + ; + "宮城県名取市"@ja ; + "04207" ; + a . + + + ; + "宮城県角田市"@ja ; + "04208" ; + a . + + + ; + "宮城県多賀城市"@ja ; + "04209" ; + a . + + + ; + "宮城県岩沼市"@ja ; + "04211" ; + a . + + + ; + "宮城県登米市"@ja ; + "04212" ; + a . + + + ; + "宮城県栗原市"@ja ; + "04213" ; + a . + + + ; + "宮城県東松島市"@ja ; + "04214" ; + a . + + + ; + "宮城県大崎市"@ja ; + "04215" ; + a . + + + ; + "宮城県富谷市"@ja ; + "04216" ; + a . + + + ; + "宮城県蔵王町"@ja ; + "04301" ; + a . + + + ; + "宮城県七ヶ宿町"@ja ; + "04302" ; + a . + + + ; + "宮城県大河原町"@ja ; + "04321" ; + a . + + + ; + "宮城県村田町"@ja ; + "04322" ; + a . + + + ; + "宮城県柴田町"@ja ; + "04323" ; + a . + + + ; + "宮城県川崎町"@ja ; + "04324" ; + a . + + + ; + "宮城県丸森町"@ja ; + "04341" ; + a . + + + ; + "宮城県亘理町"@ja ; + "04361" ; + a . + + + ; + "宮城県山元町"@ja ; + "04362" ; + a . + + + ; + "宮城県松島町"@ja ; + "04401" ; + a . + + + ; + "宮城県七ヶ浜町"@ja ; + "04404" ; + a . + + + ; + "宮城県利府町"@ja ; + "04406" ; + a . + + + ; + "宮城県大和町"@ja ; + "04421" ; + a . + + + ; + "宮城県大郷町"@ja ; + "04422" ; + a . + + + ; + "宮城県大衡村"@ja ; + "04424" ; + a . + + + ; + "宮城県色麻町"@ja ; + "04444" ; + a . + + + ; + "宮城県加美町"@ja ; + "04445" ; + a . + + + ; + "宮城県涌谷町"@ja ; + "04501" ; + a . + + + ; + "宮城県美里町"@ja ; + "04505" ; + a . + + + ; + "宮城県女川町"@ja ; + "04581" ; + a . + + + ; + "宮城県南三陸町"@ja ; + "04606" ; + a . + + + ; + "秋田県秋田市"@ja ; + "05201" ; + a . + + + ; + "秋田県能代市"@ja ; + "05202" ; + a . + + + ; + "秋田県横手市"@ja ; + "05203" ; + a . + + + ; + "秋田県大館市"@ja ; + "05204" ; + a . + + + ; + "秋田県男鹿市"@ja ; + "05206" ; + a . + + + ; + "秋田県湯沢市"@ja ; + "05207" ; + a . + + + ; + "秋田県鹿角市"@ja ; + "05209" ; + a . + + + ; + "秋田県由利本荘市"@ja ; + "05210" ; + a . + + + ; + "秋田県潟上市"@ja ; + "05211" ; + a . + + + ; + "秋田県大仙市"@ja ; + "05212" ; + a . + + + ; + "秋田県北秋田市"@ja ; + "05213" ; + a . + + + ; + "秋田県にかほ市"@ja ; + "05214" ; + a . + + + ; + "秋田県仙北市"@ja ; + "05215" ; + a . + + + ; + "秋田県小坂町"@ja ; + "05303" ; + a . + + + ; + "秋田県上小阿仁村"@ja ; + "05327" ; + a . + + + ; + "秋田県藤里町"@ja ; + "05346" ; + a . + + + ; + "秋田県三種町"@ja ; + "05348" ; + a . + + + ; + "秋田県八峰町"@ja ; + "05349" ; + a . + + + ; + "秋田県五城目町"@ja ; + "05361" ; + a . + + + ; + "秋田県八郎潟町"@ja ; + "05363" ; + a . + + + ; + "秋田県井川町"@ja ; + "05366" ; + a . + + + ; + "秋田県大潟村"@ja ; + "05368" ; + a . + + + ; + "秋田県美郷町"@ja ; + "05434" ; + a . + + + ; + "秋田県羽後町"@ja ; + "05463" ; + a . + + + ; + "秋田県東成瀬村"@ja ; + "05464" ; + a . + + + ; + "山形県山形市"@ja ; + "06201" ; + a . + + + ; + "山形県米沢市"@ja ; + "06202" ; + a . + + + ; + "山形県鶴岡市"@ja ; + "06203" ; + a . + + + ; + "山形県酒田市"@ja ; + "06204" ; + a . + + + ; + "山形県新庄市"@ja ; + "06205" ; + a . + + + ; + "山形県寒河江市"@ja ; + "06206" ; + a . + + + ; + "山形県上山市"@ja ; + "06207" ; + a . + + + ; + "山形県村山市"@ja ; + "06208" ; + a . + + + ; + "山形県長井市"@ja ; + "06209" ; + a . + + + ; + "山形県天童市"@ja ; + "06210" ; + a . + + + ; + "山形県東根市"@ja ; + "06211" ; + a . + + + ; + "山形県尾花沢市"@ja ; + "06212" ; + a . + + + ; + "山形県南陽市"@ja ; + "06213" ; + a . + + + ; + "山形県山辺町"@ja ; + "06301" ; + a . + + + ; + "山形県中山町"@ja ; + "06302" ; + a . + + + ; + "山形県河北町"@ja ; + "06321" ; + a . + + + ; + "山形県西川町"@ja ; + "06322" ; + a . + + + ; + "山形県朝日町"@ja ; + "06323" ; + a . + + + ; + "山形県大江町"@ja ; + "06324" ; + a . + + + ; + "山形県大石田町"@ja ; + "06341" ; + a . + + + ; + "山形県金山町"@ja ; + "06361" ; + a . + + + ; + "山形県最上町"@ja ; + "06362" ; + a . + + + ; + "山形県舟形町"@ja ; + "06363" ; + a . + + + ; + "山形県真室川町"@ja ; + "06364" ; + a . + + + ; + "山形県大蔵村"@ja ; + "06365" ; + a . + + + ; + "山形県鮭川村"@ja ; + "06366" ; + a . + + + ; + "山形県戸沢村"@ja ; + "06367" ; + a . + + + ; + "山形県高畠町"@ja ; + "06381" ; + a . + + + ; + "山形県川西町"@ja ; + "06382" ; + a . + + + ; + "山形県小国町"@ja ; + "06401" ; + a . + + + ; + "山形県白鷹町"@ja ; + "06402" ; + a . + + + ; + "山形県飯豊町"@ja ; + "06403" ; + a . + + + ; + "山形県三川町"@ja ; + "06426" ; + a . + + + ; + "山形県庄内町"@ja ; + "06428" ; + a . + + + ; + "山形県遊佐町"@ja ; + "06461" ; + a . + + + ; + "福島県福島市"@ja ; + "07201" ; + a . + + + ; + "福島県会津若松市"@ja ; + "07202" ; + a . + + + ; + "福島県郡山市"@ja ; + "07203" ; + a . + + + ; + "福島県いわき市"@ja ; + "07204" ; + a . + + + ; + "福島県白河市"@ja ; + "07205" ; + a . + + + ; + "福島県須賀川市"@ja ; + "07207" ; + a . + + + ; + "福島県喜多方市"@ja ; + "07208" ; + a . + + + ; + "福島県相馬市"@ja ; + "07209" ; + a . + + + ; + "福島県二本松市"@ja ; + "07210" ; + a . + + + ; + "福島県田村市"@ja ; + "07211" ; + a . + + + ; + "福島県南相馬市"@ja ; + "07212" ; + a . + + + ; + "福島県伊達市"@ja ; + "07213" ; + a . + + + ; + "福島県本宮市"@ja ; + "07214" ; + a . + + + ; + "福島県桑折町"@ja ; + "07301" ; + a . + + + ; + "福島県国見町"@ja ; + "07303" ; + a . + + + ; + "福島県川俣町"@ja ; + "07308" ; + a . + + + ; + "福島県大玉村"@ja ; + "07322" ; + a . + + + ; + "福島県鏡石町"@ja ; + "07342" ; + a . + + + ; + "福島県天栄村"@ja ; + "07344" ; + a . + + + ; + "福島県下郷町"@ja ; + "07362" ; + a . + + + ; + "福島県檜枝岐村"@ja ; + "07364" ; + a . + + + ; + "福島県只見町"@ja ; + "07367" ; + a . + + + ; + "福島県南会津町"@ja ; + "07368" ; + a . + + + ; + "福島県北塩原村"@ja ; + "07402" ; + a . + + + ; + "福島県西会津町"@ja ; + "07405" ; + a . + + + ; + "福島県磐梯町"@ja ; + "07407" ; + a . + + + ; + "福島県猪苗代町"@ja ; + "07408" ; + a . + + + ; + "福島県会津坂下町"@ja ; + "07421" ; + a . + + + ; + "福島県湯川村"@ja ; + "07422" ; + a . + + + ; + "福島県柳津町"@ja ; + "07423" ; + a . + + + ; + "福島県三島町"@ja ; + "07444" ; + a . + + + ; + "福島県金山町"@ja ; + "07445" ; + a . + + + ; + "福島県昭和村"@ja ; + "07446" ; + a . + + + ; + "福島県会津美里町"@ja ; + "07447" ; + a . + + + ; + "福島県西郷村"@ja ; + "07461" ; + a . + + + ; + "福島県泉崎村"@ja ; + "07464" ; + a . + + + ; + "福島県中島村"@ja ; + "07465" ; + a . + + + ; + "福島県矢吹町"@ja ; + "07466" ; + a . + + + ; + "福島県棚倉町"@ja ; + "07481" ; + a . + + + ; + "福島県矢祭町"@ja ; + "07482" ; + a . + + + ; + "福島県塙町"@ja ; + "07483" ; + a . + + + ; + "福島県鮫川村"@ja ; + "07484" ; + a . + + + ; + "福島県石川町"@ja ; + "07501" ; + a . + + + ; + "福島県玉川村"@ja ; + "07502" ; + a . + + + ; + "福島県平田村"@ja ; + "07503" ; + a . + + + ; + "福島県浅川町"@ja ; + "07504" ; + a . + + + ; + "福島県古殿町"@ja ; + "07505" ; + a . + + + ; + "福島県三春町"@ja ; + "07521" ; + a . + + + ; + "福島県小野町"@ja ; + "07522" ; + a . + + + ; + "福島県広野町"@ja ; + "07541" ; + a . + + + ; + "福島県楢葉町"@ja ; + "07542" ; + a . + + + ; + "福島県富岡町"@ja ; + "07543" ; + a . + + + ; + "福島県川内村"@ja ; + "07544" ; + a . + + + ; + "福島県大熊町"@ja ; + "07545" ; + a . + + + ; + "福島県双葉町"@ja ; + "07546" ; + a . + + + ; + "福島県浪江町"@ja ; + "07547" ; + a . + + + ; + "福島県葛尾村"@ja ; + "07548" ; + a . + + + ; + "福島県新地町"@ja ; + "07561" ; + a . + + + ; + "福島県飯舘村"@ja ; + "07564" ; + a . + + + ; + "茨城県水戸市"@ja ; + "08201" ; + a . + + + ; + "茨城県日立市"@ja ; + "08202" ; + a . + + + ; + "茨城県土浦市"@ja ; + "08203" ; + a . + + + ; + "茨城県古河市"@ja ; + "08204" ; + a . + + + ; + "茨城県石岡市"@ja ; + "08205" ; + a . + + + ; + "茨城県結城市"@ja ; + "08207" ; + a . + + + ; + "茨城県龍ケ崎市"@ja ; + "08208" ; + a . + + + ; + "茨城県下妻市"@ja ; + "08210" ; + a . + + + ; + "茨城県常総市"@ja ; + "08211" ; + a . + + + ; + "茨城県常陸太田市"@ja ; + "08212" ; + a . + + + ; + "茨城県高萩市"@ja ; + "08214" ; + a . + + + ; + "茨城県北茨城市"@ja ; + "08215" ; + a . + + + ; + "茨城県笠間市"@ja ; + "08216" ; + a . + + + ; + "茨城県取手市"@ja ; + "08217" ; + a . + + + ; + "茨城県牛久市"@ja ; + "08219" ; + a . + + + ; + "茨城県つくば市"@ja ; + "08220" ; + a . + + + ; + "茨城県ひたちなか市"@ja ; + "08221" ; + a . + + + ; + "茨城県鹿嶋市"@ja ; + "08222" ; + a . + + + ; + "茨城県潮来市"@ja ; + "08223" ; + a . + + + ; + "茨城県守谷市"@ja ; + "08224" ; + a . + + + ; + "茨城県常陸大宮市"@ja ; + "08225" ; + a . + + + ; + "茨城県那珂市"@ja ; + "08226" ; + a . + + + ; + "茨城県筑西市"@ja ; + "08227" ; + a . + + + ; + "茨城県坂東市"@ja ; + "08228" ; + a . + + + ; + "茨城県稲敷市"@ja ; + "08229" ; + a . + + + ; + "茨城県かすみがうら市"@ja ; + "08230" ; + a . + + + ; + "茨城県桜川市"@ja ; + "08231" ; + a . + + + ; + "茨城県神栖市"@ja ; + "08232" ; + a . + + + ; + "茨城県行方市"@ja ; + "08233" ; + a . + + + ; + "茨城県鉾田市"@ja ; + "08234" ; + a . + + + ; + "茨城県つくばみらい市"@ja ; + "08235" ; + a . + + + ; + "茨城県小美玉市"@ja ; + "08236" ; + a . + + + ; + "茨城県茨城町"@ja ; + "08302" ; + a . + + + ; + "茨城県大洗町"@ja ; + "08309" ; + a . + + + ; + "茨城県城里町"@ja ; + "08310" ; + a . + + + ; + "茨城県東海村"@ja ; + "08341" ; + a . + + + ; + "茨城県大子町"@ja ; + "08364" ; + a . + + + ; + "茨城県美浦村"@ja ; + "08442" ; + a . + + + ; + "茨城県阿見町"@ja ; + "08443" ; + a . + + + ; + "茨城県河内町"@ja ; + "08447" ; + a . + + + ; + "茨城県八千代町"@ja ; + "08521" ; + a . + + + ; + "茨城県五霞町"@ja ; + "08542" ; + a . + + + ; + "茨城県境町"@ja ; + "08546" ; + a . + + + ; + "茨城県利根町"@ja ; + "08564" ; + a . + + + ; + "栃木県宇都宮市"@ja ; + "09201" ; + a . + + + ; + "栃木県足利市"@ja ; + "09202" ; + a . + + + ; + "栃木県栃木市"@ja ; + "09203" ; + a . + + + ; + "栃木県佐野市"@ja ; + "09204" ; + a . + + + ; + "栃木県鹿沼市"@ja ; + "09205" ; + a . + + + ; + "栃木県日光市"@ja ; + "09206" ; + a . + + + ; + "栃木県小山市"@ja ; + "09208" ; + a . + + + ; + "栃木県真岡市"@ja ; + "09209" ; + a . + + + ; + "栃木県大田原市"@ja ; + "09210" ; + a . + + + ; + "栃木県矢板市"@ja ; + "09211" ; + a . + + + ; + "栃木県那須塩原市"@ja ; + "09213" ; + a . + + + ; + "栃木県さくら市"@ja ; + "09214" ; + a . + + + ; + "栃木県那須烏山市"@ja ; + "09215" ; + a . + + + ; + "栃木県下野市"@ja ; + "09216" ; + a . + + + ; + "栃木県上三川町"@ja ; + "09301" ; + a . + + + ; + "栃木県益子町"@ja ; + "09342" ; + a . + + + ; + "栃木県茂木町"@ja ; + "09343" ; + a . + + + ; + "栃木県市貝町"@ja ; + "09344" ; + a . + + + ; + "栃木県芳賀町"@ja ; + "09345" ; + a . + + + ; + "栃木県壬生町"@ja ; + "09361" ; + a . + + + ; + "栃木県野木町"@ja ; + "09364" ; + a . + + + ; + "栃木県塩谷町"@ja ; + "09384" ; + a . + + + ; + "栃木県高根沢町"@ja ; + "09386" ; + a . + + + ; + "栃木県那須町"@ja ; + "09407" ; + a . + + + ; + "栃木県那珂川町"@ja ; + "09411" ; + a . + + + ; + "群馬県前橋市"@ja ; + "10201" ; + a . + + + ; + "群馬県高崎市"@ja ; + "10202" ; + a . + + + ; + "群馬県桐生市"@ja ; + "10203" ; + a . + + + ; + "群馬県伊勢崎市"@ja ; + "10204" ; + a . + + + ; + "群馬県太田市"@ja ; + "10205" ; + a . + + + ; + "群馬県沼田市"@ja ; + "10206" ; + a . + + + ; + "群馬県館林市"@ja ; + "10207" ; + a . + + + ; + "群馬県渋川市"@ja ; + "10208" ; + a . + + + ; + "群馬県藤岡市"@ja ; + "10209" ; + a . + + + ; + "群馬県富岡市"@ja ; + "10210" ; + a . + + + ; + "群馬県安中市"@ja ; + "10211" ; + a . + + + ; + "群馬県みどり市"@ja ; + "10212" ; + a . + + + ; + "群馬県榛東村"@ja ; + "10344" ; + a . + + + ; + "群馬県吉岡町"@ja ; + "10345" ; + a . + + + ; + "群馬県上野村"@ja ; + "10366" ; + a . + + + ; + "群馬県神流町"@ja ; + "10367" ; + a . + + + ; + "群馬県下仁田町"@ja ; + "10382" ; + a . + + + ; + "群馬県南牧村"@ja ; + "10383" ; + a . + + + ; + "群馬県甘楽町"@ja ; + "10384" ; + a . + + + ; + "群馬県中之条町"@ja ; + "10421" ; + a . + + + ; + "群馬県長野原町"@ja ; + "10424" ; + a . + + + ; + "群馬県嬬恋村"@ja ; + "10425" ; + a . + + + ; + "群馬県草津町"@ja ; + "10426" ; + a . + + + ; + "群馬県高山村"@ja ; + "10428" ; + a . + + + ; + "群馬県東吾妻町"@ja ; + "10429" ; + a . + + + ; + "群馬県片品村"@ja ; + "10443" ; + a . + + + ; + "群馬県川場村"@ja ; + "10444" ; + a . + + + ; + "群馬県昭和村"@ja ; + "10448" ; + a . + + + ; + "群馬県みなかみ町"@ja ; + "10449" ; + a . + + + ; + "群馬県玉村町"@ja ; + "10464" ; + a . + + + ; + "群馬県板倉町"@ja ; + "10521" ; + a . + + + ; + "群馬県明和町"@ja ; + "10522" ; + a . + + + ; + "群馬県千代田町"@ja ; + "10523" ; + a . + + + ; + "群馬県大泉町"@ja ; + "10524" ; + a . + + + ; + "群馬県邑楽町"@ja ; + "10525" ; + a . + + + ; + "埼玉県さいたま市"@ja ; + "11100" ; + a . + + + ; + "埼玉県さいたま市西区"@ja ; + "11101" ; + a . + + + ; + "埼玉県さいたま市北区"@ja ; + "11102" ; + a . + + + ; + "埼玉県さいたま市大宮区"@ja ; + "11103" ; + a . + + + ; + "埼玉県さいたま市見沼区"@ja ; + "11104" ; + a . + + + ; + "埼玉県さいたま市中央区"@ja ; + "11105" ; + a . + + + ; + "埼玉県さいたま市桜区"@ja ; + "11106" ; + a . + + + ; + "埼玉県さいたま市浦和区"@ja ; + "11107" ; + a . + + + ; + "埼玉県さいたま市南区"@ja ; + "11108" ; + a . + + + ; + "埼玉県さいたま市緑区"@ja ; + "11109" ; + a . + + + ; + "埼玉県さいたま市岩槻区"@ja ; + "11110" ; + a . + + + ; + "埼玉県川越市"@ja ; + "11201" ; + a . + + + ; + "埼玉県熊谷市"@ja ; + "11202" ; + a . + + + ; + "埼玉県川口市"@ja ; + "11203" ; + a . + + + ; + "埼玉県行田市"@ja ; + "11206" ; + a . + + + ; + "埼玉県秩父市"@ja ; + "11207" ; + a . + + + ; + "埼玉県所沢市"@ja ; + "11208" ; + a . + + + ; + "埼玉県飯能市"@ja ; + "11209" ; + a . + + + ; + "埼玉県加須市"@ja ; + "11210" ; + a . + + + ; + "埼玉県本庄市"@ja ; + "11211" ; + a . + + + ; + "埼玉県東松山市"@ja ; + "11212" ; + a . + + + ; + "埼玉県春日部市"@ja ; + "11214" ; + a . + + + ; + "埼玉県狭山市"@ja ; + "11215" ; + a . + + + ; + "埼玉県羽生市"@ja ; + "11216" ; + a . + + + ; + "埼玉県鴻巣市"@ja ; + "11217" ; + a . + + + ; + "埼玉県深谷市"@ja ; + "11218" ; + a . + + + ; + "埼玉県上尾市"@ja ; + "11219" ; + a . + + + ; + "埼玉県草加市"@ja ; + "11221" ; + a . + + + ; + "埼玉県越谷市"@ja ; + "11222" ; + a . + + + ; + "埼玉県蕨市"@ja ; + "11223" ; + a . + + + ; + "埼玉県戸田市"@ja ; + "11224" ; + a . + + + ; + "埼玉県入間市"@ja ; + "11225" ; + a . + + + ; + "埼玉県朝霞市"@ja ; + "11227" ; + a . + + + ; + "埼玉県志木市"@ja ; + "11228" ; + a . + + + ; + "埼玉県和光市"@ja ; + "11229" ; + a . + + + ; + "埼玉県新座市"@ja ; + "11230" ; + a . + + + ; + "埼玉県桶川市"@ja ; + "11231" ; + a . + + + ; + "埼玉県久喜市"@ja ; + "11232" ; + a . + + + ; + "埼玉県北本市"@ja ; + "11233" ; + a . + + + ; + "埼玉県八潮市"@ja ; + "11234" ; + a . + + + ; + "埼玉県富士見市"@ja ; + "11235" ; + a . + + + ; + "埼玉県三郷市"@ja ; + "11237" ; + a . + + + ; + "埼玉県蓮田市"@ja ; + "11238" ; + a . + + + ; + "埼玉県坂戸市"@ja ; + "11239" ; + a . + + + ; + "埼玉県幸手市"@ja ; + "11240" ; + a . + + + ; + "埼玉県鶴ヶ島市"@ja ; + "11241" ; + a . + + + ; + "埼玉県日高市"@ja ; + "11242" ; + a . + + + ; + "埼玉県吉川市"@ja ; + "11243" ; + a . + + + ; + "埼玉県ふじみ野市"@ja ; + "11245" ; + a . + + + ; + "埼玉県白岡市"@ja ; + "11246" ; + a . + + + ; + "埼玉県伊奈町"@ja ; + "11301" ; + a . + + + ; + "埼玉県三芳町"@ja ; + "11324" ; + a . + + + ; + "埼玉県毛呂山町"@ja ; + "11326" ; + a . + + + ; + "埼玉県越生町"@ja ; + "11327" ; + a . + + + ; + "埼玉県滑川町"@ja ; + "11341" ; + a . + + + ; + "埼玉県嵐山町"@ja ; + "11342" ; + a . + + + ; + "埼玉県小川町"@ja ; + "11343" ; + a . + + + ; + "埼玉県川島町"@ja ; + "11346" ; + a . + + + ; + "埼玉県吉見町"@ja ; + "11347" ; + a . + + + ; + "埼玉県鳩山町"@ja ; + "11348" ; + a . + + + ; + "埼玉県ときがわ町"@ja ; + "11349" ; + a . + + + ; + "埼玉県横瀬町"@ja ; + "11361" ; + a . + + + ; + "埼玉県皆野町"@ja ; + "11362" ; + a . + + + ; + "埼玉県長瀞町"@ja ; + "11363" ; + a . + + + ; + "埼玉県小鹿野町"@ja ; + "11365" ; + a . + + + ; + "埼玉県東秩父村"@ja ; + "11369" ; + a . + + + ; + "埼玉県美里町"@ja ; + "11381" ; + a . + + + ; + "埼玉県神川町"@ja ; + "11383" ; + a . + + + ; + "埼玉県上里町"@ja ; + "11385" ; + a . + + + ; + "埼玉県寄居町"@ja ; + "11408" ; + a . + + + ; + "埼玉県宮代町"@ja ; + "11442" ; + a . + + + ; + "埼玉県杉戸町"@ja ; + "11464" ; + a . + + + ; + "埼玉県松伏町"@ja ; + "11465" ; + a . + + + ; + "千葉県千葉市"@ja ; + "12100" ; + a . + + + ; + "千葉県千葉市中央区"@ja ; + "12101" ; + a . + + + ; + "千葉県千葉市花見川区"@ja ; + "12102" ; + a . + + + ; + "千葉県千葉市稲毛区"@ja ; + "12103" ; + a . + + + ; + "千葉県千葉市若葉区"@ja ; + "12104" ; + a . + + + ; + "千葉県千葉市緑区"@ja ; + "12105" ; + a . + + + ; + "千葉県千葉市美浜区"@ja ; + "12106" ; + a . + + + ; + "千葉県銚子市"@ja ; + "12202" ; + a . + + + ; + "千葉県市川市"@ja ; + "12203" ; + a . + + + ; + "千葉県船橋市"@ja ; + "12204" ; + a . + + + ; + "千葉県館山市"@ja ; + "12205" ; + a . + + + ; + "千葉県木更津市"@ja ; + "12206" ; + a . + + + ; + "千葉県松戸市"@ja ; + "12207" ; + a . + + + ; + "千葉県野田市"@ja ; + "12208" ; + a . + + + ; + "千葉県茂原市"@ja ; + "12210" ; + a . + + + ; + "千葉県成田市"@ja ; + "12211" ; + a . + + + ; + "千葉県佐倉市"@ja ; + "12212" ; + a . + + + ; + "千葉県東金市"@ja ; + "12213" ; + a . + + + ; + "千葉県旭市"@ja ; + "12215" ; + a . + + + ; + "千葉県習志野市"@ja ; + "12216" ; + a . + + + ; + "千葉県柏市"@ja ; + "12217" ; + a . + + + ; + "千葉県勝浦市"@ja ; + "12218" ; + a . + + + ; + "千葉県市原市"@ja ; + "12219" ; + a . + + + ; + "千葉県流山市"@ja ; + "12220" ; + a . + + + ; + "千葉県八千代市"@ja ; + "12221" ; + a . + + + ; + "千葉県我孫子市"@ja ; + "12222" ; + a . + + + ; + "千葉県鴨川市"@ja ; + "12223" ; + a . + + + ; + "千葉県鎌ケ谷市"@ja ; + "12224" ; + a . + + + ; + "千葉県君津市"@ja ; + "12225" ; + a . + + + ; + "千葉県富津市"@ja ; + "12226" ; + a . + + + ; + "千葉県浦安市"@ja ; + "12227" ; + a . + + + ; + "千葉県四街道市"@ja ; + "12228" ; + a . + + + ; + "千葉県袖ケ浦市"@ja ; + "12229" ; + a . + + + ; + "千葉県八街市"@ja ; + "12230" ; + a . + + + ; + "千葉県印西市"@ja ; + "12231" ; + a . + + + ; + "千葉県白井市"@ja ; + "12232" ; + a . + + + ; + "千葉県富里市"@ja ; + "12233" ; + a . + + + ; + "千葉県南房総市"@ja ; + "12234" ; + a . + + + ; + "千葉県匝瑳市"@ja ; + "12235" ; + a . + + + ; + "千葉県香取市"@ja ; + "12236" ; + a . + + + ; + "千葉県山武市"@ja ; + "12237" ; + a . + + + ; + "千葉県いすみ市"@ja ; + "12238" ; + a . + + + ; + "千葉県大網白里市"@ja ; + "12239" ; + a . + + + ; + "千葉県酒々井町"@ja ; + "12322" ; + a . + + + ; + "千葉県栄町"@ja ; + "12329" ; + a . + + + ; + "千葉県神崎町"@ja ; + "12342" ; + a . + + + ; + "千葉県多古町"@ja ; + "12347" ; + a . + + + ; + "千葉県東庄町"@ja ; + "12349" ; + a . + + + ; + "千葉県九十九里町"@ja ; + "12403" ; + a . + + + ; + "千葉県芝山町"@ja ; + "12409" ; + a . + + + ; + "千葉県横芝光町"@ja ; + "12410" ; + a . + + + ; + "千葉県一宮町"@ja ; + "12421" ; + a . + + + ; + "千葉県睦沢町"@ja ; + "12422" ; + a . + + + ; + "千葉県長生村"@ja ; + "12423" ; + a . + + + ; + "千葉県白子町"@ja ; + "12424" ; + a . + + + ; + "千葉県長柄町"@ja ; + "12426" ; + a . + + + ; + "千葉県長南町"@ja ; + "12427" ; + a . + + + ; + "千葉県大多喜町"@ja ; + "12441" ; + a . + + + ; + "千葉県御宿町"@ja ; + "12443" ; + a . + + + ; + "千葉県鋸南町"@ja ; + "12463" ; + a . + + + ; + "東京都千代田区"@ja ; + "13101" ; + a . + + + ; + "東京都中央区"@ja ; + "13102" ; + a . + + + ; + "東京都港区"@ja ; + "13103" ; + a . + + + ; + "東京都新宿区"@ja ; + "13104" ; + a . + + + ; + "東京都文京区"@ja ; + "13105" ; + a . + + + ; + "東京都台東区"@ja ; + "13106" ; + a . + + + ; + "東京都墨田区"@ja ; + "13107" ; + a . + + + ; + "東京都江東区"@ja ; + "13108" ; + a . + + + ; + "東京都品川区"@ja ; + "13109" ; + a . + + + ; + "東京都目黒区"@ja ; + "13110" ; + a . + + + ; + "東京都大田区"@ja ; + "13111" ; + a . + + + ; + "東京都世田谷区"@ja ; + "13112" ; + a . + + + ; + "東京都渋谷区"@ja ; + "13113" ; + a . + + + ; + "東京都中野区"@ja ; + "13114" ; + a . + + + ; + "東京都杉並区"@ja ; + "13115" ; + a . + + + ; + "東京都豊島区"@ja ; + "13116" ; + a . + + + ; + "東京都北区"@ja ; + "13117" ; + a . + + + ; + "東京都荒川区"@ja ; + "13118" ; + a . + + + ; + "東京都板橋区"@ja ; + "13119" ; + a . + + + ; + "東京都練馬区"@ja ; + "13120" ; + a . + + + ; + "東京都足立区"@ja ; + "13121" ; + a . + + + ; + "東京都葛飾区"@ja ; + "13122" ; + a . + + + ; + "東京都江戸川区"@ja ; + "13123" ; + a . + + + ; + "東京都八王子市"@ja ; + "13201" ; + a . + + + ; + "東京都立川市"@ja ; + "13202" ; + a . + + + ; + "東京都武蔵野市"@ja ; + "13203" ; + a . + + + ; + "東京都三鷹市"@ja ; + "13204" ; + a . + + + ; + "東京都青梅市"@ja ; + "13205" ; + a . + + + ; + "東京都府中市"@ja ; + "13206" ; + a . + + + ; + "東京都昭島市"@ja ; + "13207" ; + a . + + + ; + "東京都調布市"@ja ; + "13208" ; + a . + + + ; + "東京都町田市"@ja ; + "13209" ; + a . + + + ; + "東京都小金井市"@ja ; + "13210" ; + a . + + + ; + "東京都小平市"@ja ; + "13211" ; + a . + + + ; + "東京都日野市"@ja ; + "13212" ; + a . + + + ; + "東京都東村山市"@ja ; + "13213" ; + a . + + + ; + "東京都国分寺市"@ja ; + "13214" ; + a . + + + ; + "東京都国立市"@ja ; + "13215" ; + a . + + + ; + "東京都福生市"@ja ; + "13218" ; + a . + + + ; + "東京都狛江市"@ja ; + "13219" ; + a . + + + ; + "東京都東大和市"@ja ; + "13220" ; + a . + + + ; + "東京都清瀬市"@ja ; + "13221" ; + a . + + + ; + "東京都東久留米市"@ja ; + "13222" ; + a . + + + ; + "東京都武蔵村山市"@ja ; + "13223" ; + a . + + + ; + "東京都多摩市"@ja ; + "13224" ; + a . + + + ; + "東京都稲城市"@ja ; + "13225" ; + a . + + + ; + "東京都羽村市"@ja ; + "13227" ; + a . + + + ; + "東京都あきる野市"@ja ; + "13228" ; + a . + + + ; + "東京都西東京市"@ja ; + "13229" ; + a . + + + ; + "東京都瑞穂町"@ja ; + "13303" ; + a . + + + ; + "東京都日の出町"@ja ; + "13305" ; + a . + + + ; + "東京都檜原村"@ja ; + "13307" ; + a . + + + ; + "東京都奥多摩町"@ja ; + "13308" ; + a . + + + ; + "東京都大島町"@ja ; + "13361" ; + a . + + + ; + "東京都利島村"@ja ; + "13362" ; + a . + + + ; + "東京都新島村"@ja ; + "13363" ; + a . + + + ; + "東京都神津島村"@ja ; + "13364" ; + a . + + + ; + "東京都三宅村"@ja ; + "13381" ; + a . + + + ; + "東京都御蔵島村"@ja ; + "13382" ; + a . + + + ; + "東京都八丈町"@ja ; + "13401" ; + a . + + + ; + "東京都青ヶ島村"@ja ; + "13402" ; + a . + + + ; + "東京都小笠原村"@ja ; + "13421" ; + a . + + + ; + "神奈川県横浜市"@ja ; + "14100" ; + a . + + + ; + "神奈川県横浜市鶴見区"@ja ; + "14101" ; + a . + + + ; + "神奈川県横浜市神奈川区"@ja ; + "14102" ; + a . + + + ; + "神奈川県横浜市西区"@ja ; + "14103" ; + a . + + + ; + "神奈川県横浜市中区"@ja ; + "14104" ; + a . + + + ; + "神奈川県横浜市南区"@ja ; + "14105" ; + a . + + + ; + "神奈川県横浜市保土ケ谷区"@ja ; + "14106" ; + a . + + + ; + "神奈川県横浜市磯子区"@ja ; + "14107" ; + a . + + + ; + "神奈川県横浜市金沢区"@ja ; + "14108" ; + a . + + + ; + "神奈川県横浜市港北区"@ja ; + "14109" ; + a . + + + ; + "神奈川県横浜市戸塚区"@ja ; + "14110" ; + a . + + + ; + "神奈川県横浜市港南区"@ja ; + "14111" ; + a . + + + ; + "神奈川県横浜市旭区"@ja ; + "14112" ; + a . + + + ; + "神奈川県横浜市緑区"@ja ; + "14113" ; + a . + + + ; + "神奈川県横浜市瀬谷区"@ja ; + "14114" ; + a . + + + ; + "神奈川県横浜市栄区"@ja ; + "14115" ; + a . + + + ; + "神奈川県横浜市泉区"@ja ; + "14116" ; + a . + + + ; + "神奈川県横浜市青葉区"@ja ; + "14117" ; + a . + + + ; + "神奈川県横浜市都筑区"@ja ; + "14118" ; + a . + + + ; + "神奈川県川崎市"@ja ; + "14130" ; + a . + + + ; + "神奈川県川崎市川崎区"@ja ; + "14131" ; + a . + + + ; + "神奈川県川崎市幸区"@ja ; + "14132" ; + a . + + + ; + "神奈川県川崎市中原区"@ja ; + "14133" ; + a . + + + ; + "神奈川県川崎市高津区"@ja ; + "14134" ; + a . + + + ; + "神奈川県川崎市多摩区"@ja ; + "14135" ; + a . + + + ; + "神奈川県川崎市宮前区"@ja ; + "14136" ; + a . + + + ; + "神奈川県川崎市麻生区"@ja ; + "14137" ; + a . + + + ; + "神奈川県相模原市"@ja ; + "14150" ; + a . + + + ; + "神奈川県相模原市緑区"@ja ; + "14151" ; + a . + + + ; + "神奈川県相模原市中央区"@ja ; + "14152" ; + a . + + + ; + "神奈川県相模原市南区"@ja ; + "14153" ; + a . + + + ; + "神奈川県横須賀市"@ja ; + "14201" ; + a . + + + ; + "神奈川県平塚市"@ja ; + "14203" ; + a . + + + ; + "神奈川県鎌倉市"@ja ; + "14204" ; + a . + + + ; + "神奈川県藤沢市"@ja ; + "14205" ; + a . + + + ; + "神奈川県小田原市"@ja ; + "14206" ; + a . + + + ; + "神奈川県茅ヶ崎市"@ja ; + "14207" ; + a . + + + ; + "神奈川県逗子市"@ja ; + "14208" ; + a . + + + ; + "神奈川県三浦市"@ja ; + "14210" ; + a . + + + ; + "神奈川県秦野市"@ja ; + "14211" ; + a . + + + ; + "神奈川県厚木市"@ja ; + "14212" ; + a . + + + ; + "神奈川県大和市"@ja ; + "14213" ; + a . + + + ; + "神奈川県伊勢原市"@ja ; + "14214" ; + a . + + + ; + "神奈川県海老名市"@ja ; + "14215" ; + a . + + + ; + "神奈川県座間市"@ja ; + "14216" ; + a . + + + ; + "神奈川県南足柄市"@ja ; + "14217" ; + a . + + + ; + "神奈川県綾瀬市"@ja ; + "14218" ; + a . + + + ; + "神奈川県葉山町"@ja ; + "14301" ; + a . + + + ; + "神奈川県寒川町"@ja ; + "14321" ; + a . + + + ; + "神奈川県大磯町"@ja ; + "14341" ; + a . + + + ; + "神奈川県二宮町"@ja ; + "14342" ; + a . + + + ; + "神奈川県中井町"@ja ; + "14361" ; + a . + + + ; + "神奈川県大井町"@ja ; + "14362" ; + a . + + + ; + "神奈川県松田町"@ja ; + "14363" ; + a . + + + ; + "神奈川県山北町"@ja ; + "14364" ; + a . + + + ; + "神奈川県開成町"@ja ; + "14366" ; + a . + + + ; + "神奈川県箱根町"@ja ; + "14382" ; + a . + + + ; + "神奈川県真鶴町"@ja ; + "14383" ; + a . + + + ; + "神奈川県湯河原町"@ja ; + "14384" ; + a . + + + ; + "神奈川県愛川町"@ja ; + "14401" ; + a . + + + ; + "神奈川県清川村"@ja ; + "14402" ; + a . + + + ; + "新潟県新潟市"@ja ; + "15100" ; + a . + + + ; + "新潟県新潟市北区"@ja ; + "15101" ; + a . + + + ; + "新潟県新潟市東区"@ja ; + "15102" ; + a . + + + ; + "新潟県新潟市中央区"@ja ; + "15103" ; + a . + + + ; + "新潟県新潟市江南区"@ja ; + "15104" ; + a . + + + ; + "新潟県新潟市秋葉区"@ja ; + "15105" ; + a . + + + ; + "新潟県新潟市南区"@ja ; + "15106" ; + a . + + + ; + "新潟県新潟市西区"@ja ; + "15107" ; + a . + + + ; + "新潟県新潟市西蒲区"@ja ; + "15108" ; + a . + + + ; + "新潟県長岡市"@ja ; + "15202" ; + a . + + + ; + "新潟県三条市"@ja ; + "15204" ; + a . + + + ; + "新潟県柏崎市"@ja ; + "15205" ; + a . + + + ; + "新潟県新発田市"@ja ; + "15206" ; + a . + + + ; + "新潟県小千谷市"@ja ; + "15208" ; + a . + + + ; + "新潟県加茂市"@ja ; + "15209" ; + a . + + + ; + "新潟県十日町市"@ja ; + "15210" ; + a . + + + ; + "新潟県見附市"@ja ; + "15211" ; + a . + + + ; + "新潟県村上市"@ja ; + "15212" ; + a . + + + ; + "新潟県燕市"@ja ; + "15213" ; + a . + + + ; + "新潟県糸魚川市"@ja ; + "15216" ; + a . + + + ; + "新潟県妙高市"@ja ; + "15217" ; + a . + + + ; + "新潟県五泉市"@ja ; + "15218" ; + a . + + + ; + "新潟県上越市"@ja ; + "15222" ; + a . + + + ; + "新潟県阿賀野市"@ja ; + "15223" ; + a . + + + ; + "新潟県佐渡市"@ja ; + "15224" ; + a . + + + ; + "新潟県魚沼市"@ja ; + "15225" ; + a . + + + ; + "新潟県南魚沼市"@ja ; + "15226" ; + a . + + + ; + "新潟県胎内市"@ja ; + "15227" ; + a . + + + ; + "新潟県聖籠町"@ja ; + "15307" ; + a . + + + ; + "新潟県弥彦村"@ja ; + "15342" ; + a . + + + ; + "新潟県田上町"@ja ; + "15361" ; + a . + + + ; + "新潟県阿賀町"@ja ; + "15385" ; + a . + + + ; + "新潟県出雲崎町"@ja ; + "15405" ; + a . + + + ; + "新潟県湯沢町"@ja ; + "15461" ; + a . + + + ; + "新潟県津南町"@ja ; + "15482" ; + a . + + + ; + "新潟県刈羽村"@ja ; + "15504" ; + a . + + + ; + "新潟県関川村"@ja ; + "15581" ; + a . + + + ; + "新潟県粟島浦村"@ja ; + "15586" ; + a . + + + ; + "富山県富山市"@ja ; + "16201" ; + a . + + + ; + "富山県高岡市"@ja ; + "16202" ; + a . + + + ; + "富山県魚津市"@ja ; + "16204" ; + a . + + + ; + "富山県氷見市"@ja ; + "16205" ; + a . + + + ; + "富山県滑川市"@ja ; + "16206" ; + a . + + + ; + "富山県黒部市"@ja ; + "16207" ; + a . + + + ; + "富山県砺波市"@ja ; + "16208" ; + a . + + + ; + "富山県小矢部市"@ja ; + "16209" ; + a . + + + ; + "富山県南砺市"@ja ; + "16210" ; + a . + + + ; + "富山県射水市"@ja ; + "16211" ; + a . + + + ; + "富山県舟橋村"@ja ; + "16321" ; + a . + + + ; + "富山県上市町"@ja ; + "16322" ; + a . + + + ; + "富山県立山町"@ja ; + "16323" ; + a . + + + ; + "富山県入善町"@ja ; + "16342" ; + a . + + + ; + "富山県朝日町"@ja ; + "16343" ; + a . + + + ; + "石川県金沢市"@ja ; + "17201" ; + a . + + + ; + "石川県七尾市"@ja ; + "17202" ; + a . + + + ; + "石川県小松市"@ja ; + "17203" ; + a . + + + ; + "石川県輪島市"@ja ; + "17204" ; + a . + + + ; + "石川県珠洲市"@ja ; + "17205" ; + a . + + + ; + "石川県加賀市"@ja ; + "17206" ; + a . + + + ; + "石川県羽咋市"@ja ; + "17207" ; + a . + + + ; + "石川県かほく市"@ja ; + "17209" ; + a . + + + ; + "石川県白山市"@ja ; + "17210" ; + a . + + + ; + "石川県能美市"@ja ; + "17211" ; + a . + + + ; + "石川県野々市市"@ja ; + "17212" ; + a . + + + ; + "石川県川北町"@ja ; + "17324" ; + a . + + + ; + "石川県津幡町"@ja ; + "17361" ; + a . + + + ; + "石川県内灘町"@ja ; + "17365" ; + a . + + + ; + "石川県志賀町"@ja ; + "17384" ; + a . + + + ; + "石川県宝達志水町"@ja ; + "17386" ; + a . + + + ; + "石川県中能登町"@ja ; + "17407" ; + a . + + + ; + "石川県穴水町"@ja ; + "17461" ; + a . + + + ; + "石川県能登町"@ja ; + "17463" ; + a . + + + ; + "福井県福井市"@ja ; + "18201" ; + a . + + + ; + "福井県敦賀市"@ja ; + "18202" ; + a . + + + ; + "福井県小浜市"@ja ; + "18204" ; + a . + + + ; + "福井県大野市"@ja ; + "18205" ; + a . + + + ; + "福井県勝山市"@ja ; + "18206" ; + a . + + + ; + "福井県鯖江市"@ja ; + "18207" ; + a . + + + ; + "福井県あわら市"@ja ; + "18208" ; + a . + + + ; + "福井県越前市"@ja ; + "18209" ; + a . + + + ; + "福井県坂井市"@ja ; + "18210" ; + a . + + + ; + "福井県永平寺町"@ja ; + "18322" ; + a . + + + ; + "福井県池田町"@ja ; + "18382" ; + a . + + + ; + "福井県南越前町"@ja ; + "18404" ; + a . + + + ; + "福井県越前町"@ja ; + "18423" ; + a . + + + ; + "福井県美浜町"@ja ; + "18442" ; + a . + + + ; + "福井県高浜町"@ja ; + "18481" ; + a . + + + ; + "福井県おおい町"@ja ; + "18483" ; + a . + + + ; + "福井県若狭町"@ja ; + "18501" ; + a . + + + ; + "山梨県甲府市"@ja ; + "19201" ; + a . + + + ; + "山梨県富士吉田市"@ja ; + "19202" ; + a . + + + ; + "山梨県都留市"@ja ; + "19204" ; + a . + + + ; + "山梨県山梨市"@ja ; + "19205" ; + a . + + + ; + "山梨県大月市"@ja ; + "19206" ; + a . + + + ; + "山梨県韮崎市"@ja ; + "19207" ; + a . + + + ; + "山梨県南アルプス市"@ja ; + "19208" ; + a . + + + ; + "山梨県北杜市"@ja ; + "19209" ; + a . + + + ; + "山梨県甲斐市"@ja ; + "19210" ; + a . + + + ; + "山梨県笛吹市"@ja ; + "19211" ; + a . + + + ; + "山梨県上野原市"@ja ; + "19212" ; + a . + + + ; + "山梨県甲州市"@ja ; + "19213" ; + a . + + + ; + "山梨県中央市"@ja ; + "19214" ; + a . + + + ; + "山梨県市川三郷町"@ja ; + "19346" ; + a . + + + ; + "山梨県早川町"@ja ; + "19364" ; + a . + + + ; + "山梨県身延町"@ja ; + "19365" ; + a . + + + ; + "山梨県南部町"@ja ; + "19366" ; + a . + + + ; + "山梨県富士川町"@ja ; + "19368" ; + a . + + + ; + "山梨県昭和町"@ja ; + "19384" ; + a . + + + ; + "山梨県道志村"@ja ; + "19422" ; + a . + + + ; + "山梨県西桂町"@ja ; + "19423" ; + a . + + + ; + "山梨県忍野村"@ja ; + "19424" ; + a . + + + ; + "山梨県山中湖村"@ja ; + "19425" ; + a . + + + ; + "山梨県鳴沢村"@ja ; + "19429" ; + a . + + + ; + "山梨県富士河口湖町"@ja ; + "19430" ; + a . + + + ; + "山梨県小菅村"@ja ; + "19442" ; + a . + + + ; + "山梨県丹波山村"@ja ; + "19443" ; + a . + + + ; + "長野県長野市"@ja ; + "20201" ; + a . + + + ; + "長野県松本市"@ja ; + "20202" ; + a . + + + ; + "長野県上田市"@ja ; + "20203" ; + a . + + + ; + "長野県岡谷市"@ja ; + "20204" ; + a . + + + ; + "長野県飯田市"@ja ; + "20205" ; + a . + + + ; + "長野県諏訪市"@ja ; + "20206" ; + a . + + + ; + "長野県須坂市"@ja ; + "20207" ; + a . + + + ; + "長野県小諸市"@ja ; + "20208" ; + a . + + + ; + "長野県伊那市"@ja ; + "20209" ; + a . + + + ; + "長野県駒ヶ根市"@ja ; + "20210" ; + a . + + + ; + "長野県中野市"@ja ; + "20211" ; + a . + + + ; + "長野県大町市"@ja ; + "20212" ; + a . + + + ; + "長野県飯山市"@ja ; + "20213" ; + a . + + + ; + "長野県茅野市"@ja ; + "20214" ; + a . + + + ; + "長野県塩尻市"@ja ; + "20215" ; + a . + + + ; + "長野県佐久市"@ja ; + "20217" ; + a . + + + ; + "長野県千曲市"@ja ; + "20218" ; + a . + + + ; + "長野県東御市"@ja ; + "20219" ; + a . + + + ; + "長野県安曇野市"@ja ; + "20220" ; + a . + + + ; + "長野県小海町"@ja ; + "20303" ; + a . + + + ; + "長野県川上村"@ja ; + "20304" ; + a . + + + ; + "長野県南牧村"@ja ; + "20305" ; + a . + + + ; + "長野県南相木村"@ja ; + "20306" ; + a . + + + ; + "長野県北相木村"@ja ; + "20307" ; + a . + + + ; + "長野県佐久穂町"@ja ; + "20309" ; + a . + + + ; + "長野県軽井沢町"@ja ; + "20321" ; + a . + + + ; + "長野県御代田町"@ja ; + "20323" ; + a . + + + ; + "長野県立科町"@ja ; + "20324" ; + a . + + + ; + "長野県青木村"@ja ; + "20349" ; + a . + + + ; + "長野県長和町"@ja ; + "20350" ; + a . + + + ; + "長野県下諏訪町"@ja ; + "20361" ; + a . + + + ; + "長野県富士見町"@ja ; + "20362" ; + a . + + + ; + "長野県原村"@ja ; + "20363" ; + a . + + + ; + "長野県辰野町"@ja ; + "20382" ; + a . + + + ; + "長野県箕輪町"@ja ; + "20383" ; + a . + + + ; + "長野県飯島町"@ja ; + "20384" ; + a . + + + ; + "長野県南箕輪村"@ja ; + "20385" ; + a . + + + ; + "長野県中川村"@ja ; + "20386" ; + a . + + + ; + "長野県宮田村"@ja ; + "20388" ; + a . + + + ; + "長野県松川町"@ja ; + "20402" ; + a . + + + ; + "長野県高森町"@ja ; + "20403" ; + a . + + + ; + "長野県阿南町"@ja ; + "20404" ; + a . + + + ; + "長野県阿智村"@ja ; + "20407" ; + a . + + + ; + "長野県平谷村"@ja ; + "20409" ; + a . + + + ; + "長野県根羽村"@ja ; + "20410" ; + a . + + + ; + "長野県下條村"@ja ; + "20411" ; + a . + + + ; + "長野県売木村"@ja ; + "20412" ; + a . + + + ; + "長野県天龍村"@ja ; + "20413" ; + a . + + + ; + "長野県泰阜村"@ja ; + "20414" ; + a . + + + ; + "長野県喬木村"@ja ; + "20415" ; + a . + + + ; + "長野県豊丘村"@ja ; + "20416" ; + a . + + + ; + "長野県大鹿村"@ja ; + "20417" ; + a . + + + ; + "長野県上松町"@ja ; + "20422" ; + a . + + + ; + "長野県南木曽町"@ja ; + "20423" ; + a . + + + ; + "長野県木祖村"@ja ; + "20425" ; + a . + + + ; + "長野県王滝村"@ja ; + "20429" ; + a . + + + ; + "長野県大桑村"@ja ; + "20430" ; + a . + + + ; + "長野県木曽町"@ja ; + "20432" ; + a . + + + ; + "長野県麻績村"@ja ; + "20446" ; + a . + + + ; + "長野県生坂村"@ja ; + "20448" ; + a . + + + ; + "長野県山形村"@ja ; + "20450" ; + a . + + + ; + "長野県朝日村"@ja ; + "20451" ; + a . + + + ; + "長野県筑北村"@ja ; + "20452" ; + a . + + + ; + "長野県池田町"@ja ; + "20481" ; + a . + + + ; + "長野県松川村"@ja ; + "20482" ; + a . + + + ; + "長野県白馬村"@ja ; + "20485" ; + a . + + + ; + "長野県小谷村"@ja ; + "20486" ; + a . + + + ; + "長野県坂城町"@ja ; + "20521" ; + a . + + + ; + "長野県小布施町"@ja ; + "20541" ; + a . + + + ; + "長野県高山村"@ja ; + "20543" ; + a . + + + ; + "長野県山ノ内町"@ja ; + "20561" ; + a . + + + ; + "長野県木島平村"@ja ; + "20562" ; + a . + + + ; + "長野県野沢温泉村"@ja ; + "20563" ; + a . + + + ; + "長野県信濃町"@ja ; + "20583" ; + a . + + + ; + "長野県小川村"@ja ; + "20588" ; + a . + + + ; + "長野県飯綱町"@ja ; + "20590" ; + a . + + + ; + "長野県栄村"@ja ; + "20602" ; + a . + + + ; + "岐阜県岐阜市"@ja ; + "21201" ; + a . + + + ; + "岐阜県大垣市"@ja ; + "21202" ; + a . + + + ; + "岐阜県高山市"@ja ; + "21203" ; + a . + + + ; + "岐阜県多治見市"@ja ; + "21204" ; + a . + + + ; + "岐阜県関市"@ja ; + "21205" ; + a . + + + ; + "岐阜県中津川市"@ja ; + "21206" ; + a . + + + ; + "岐阜県美濃市"@ja ; + "21207" ; + a . + + + ; + "岐阜県瑞浪市"@ja ; + "21208" ; + a . + + + ; + "岐阜県羽島市"@ja ; + "21209" ; + a . + + + ; + "岐阜県恵那市"@ja ; + "21210" ; + a . + + + ; + "岐阜県美濃加茂市"@ja ; + "21211" ; + a . + + + ; + "岐阜県土岐市"@ja ; + "21212" ; + a . + + + ; + "岐阜県各務原市"@ja ; + "21213" ; + a . + + + ; + "岐阜県可児市"@ja ; + "21214" ; + a . + + + ; + "岐阜県山県市"@ja ; + "21215" ; + a . + + + ; + "岐阜県瑞穂市"@ja ; + "21216" ; + a . + + + ; + "岐阜県飛騨市"@ja ; + "21217" ; + a . + + + ; + "岐阜県本巣市"@ja ; + "21218" ; + a . + + + ; + "岐阜県郡上市"@ja ; + "21219" ; + a . + + + ; + "岐阜県下呂市"@ja ; + "21220" ; + a . + + + ; + "岐阜県海津市"@ja ; + "21221" ; + a . + + + ; + "岐阜県岐南町"@ja ; + "21302" ; + a . + + + ; + "岐阜県笠松町"@ja ; + "21303" ; + a . + + + ; + "岐阜県養老町"@ja ; + "21341" ; + a . + + + ; + "岐阜県垂井町"@ja ; + "21361" ; + a . + + + ; + "岐阜県関ケ原町"@ja ; + "21362" ; + a . + + + ; + "岐阜県神戸町"@ja ; + "21381" ; + a . + + + ; + "岐阜県輪之内町"@ja ; + "21382" ; + a . + + + ; + "岐阜県安八町"@ja ; + "21383" ; + a . + + + ; + "岐阜県揖斐川町"@ja ; + "21401" ; + a . + + + ; + "岐阜県大野町"@ja ; + "21403" ; + a . + + + ; + "岐阜県池田町"@ja ; + "21404" ; + a . + + + ; + "岐阜県北方町"@ja ; + "21421" ; + a . + + + ; + "岐阜県坂祝町"@ja ; + "21501" ; + a . + + + ; + "岐阜県富加町"@ja ; + "21502" ; + a . + + + ; + "岐阜県川辺町"@ja ; + "21503" ; + a . + + + ; + "岐阜県七宗町"@ja ; + "21504" ; + a . + + + ; + "岐阜県八百津町"@ja ; + "21505" ; + a . + + + ; + "岐阜県白川町"@ja ; + "21506" ; + a . + + + ; + "岐阜県東白川村"@ja ; + "21507" ; + a . + + + ; + "岐阜県御嵩町"@ja ; + "21521" ; + a . + + + ; + "岐阜県白川村"@ja ; + "21604" ; + a . + + + ; + "静岡県静岡市"@ja ; + "22100" ; + a . + + + ; + "静岡県静岡市葵区"@ja ; + "22101" ; + a . + + + ; + "静岡県静岡市駿河区"@ja ; + "22102" ; + a . + + + ; + "静岡県静岡市清水区"@ja ; + "22103" ; + a . + + + ; + "静岡県浜松市"@ja ; + "22130" ; + a . + + + ; + "静岡県浜松市中区"@ja ; + "22131" ; + a . + + + ; + "静岡県浜松市東区"@ja ; + "22132" ; + a . + + + ; + "静岡県浜松市西区"@ja ; + "22133" ; + a . + + + ; + "静岡県浜松市南区"@ja ; + "22134" ; + a . + + + ; + "静岡県浜松市北区"@ja ; + "22135" ; + a . + + + ; + "静岡県浜松市浜北区"@ja ; + "22136" ; + a . + + + ; + "静岡県浜松市天竜区"@ja ; + "22137" ; + a . + + + ; + "静岡県沼津市"@ja ; + "22203" ; + a . + + + ; + "静岡県熱海市"@ja ; + "22205" ; + a . + + + ; + "静岡県三島市"@ja ; + "22206" ; + a . + + + ; + "静岡県富士宮市"@ja ; + "22207" ; + a . + + + ; + "静岡県伊東市"@ja ; + "22208" ; + a . + + + ; + "静岡県島田市"@ja ; + "22209" ; + a . + + + ; + "静岡県富士市"@ja ; + "22210" ; + a . + + + ; + "静岡県磐田市"@ja ; + "22211" ; + a . + + + ; + "静岡県焼津市"@ja ; + "22212" ; + a . + + + ; + "静岡県掛川市"@ja ; + "22213" ; + a . + + + ; + "静岡県藤枝市"@ja ; + "22214" ; + a . + + + ; + "静岡県御殿場市"@ja ; + "22215" ; + a . + + + ; + "静岡県袋井市"@ja ; + "22216" ; + a . + + + ; + "静岡県下田市"@ja ; + "22219" ; + a . + + + ; + "静岡県裾野市"@ja ; + "22220" ; + a . + + + ; + "静岡県湖西市"@ja ; + "22221" ; + a . + + + ; + "静岡県伊豆市"@ja ; + "22222" ; + a . + + + ; + "静岡県御前崎市"@ja ; + "22223" ; + a . + + + ; + "静岡県菊川市"@ja ; + "22224" ; + a . + + + ; + "静岡県伊豆の国市"@ja ; + "22225" ; + a . + + + ; + "静岡県牧之原市"@ja ; + "22226" ; + a . + + + ; + "静岡県東伊豆町"@ja ; + "22301" ; + a . + + + ; + "静岡県河津町"@ja ; + "22302" ; + a . + + + ; + "静岡県南伊豆町"@ja ; + "22304" ; + a . + + + ; + "静岡県松崎町"@ja ; + "22305" ; + a . + + + ; + "静岡県西伊豆町"@ja ; + "22306" ; + a . + + + ; + "静岡県函南町"@ja ; + "22325" ; + a . + + + ; + "静岡県清水町"@ja ; + "22341" ; + a . + + + ; + "静岡県長泉町"@ja ; + "22342" ; + a . + + + ; + "静岡県小山町"@ja ; + "22344" ; + a . + + + ; + "静岡県吉田町"@ja ; + "22424" ; + a . + + + ; + "静岡県川根本町"@ja ; + "22429" ; + a . + + + ; + "静岡県森町"@ja ; + "22461" ; + a . + + + ; + "愛知県名古屋市"@ja ; + "23100" ; + a . + + + ; + "愛知県名古屋市千種区"@ja ; + "23101" ; + a . + + + ; + "愛知県名古屋市東区"@ja ; + "23102" ; + a . + + + ; + "愛知県名古屋市北区"@ja ; + "23103" ; + a . + + + ; + "愛知県名古屋市西区"@ja ; + "23104" ; + a . + + + ; + "愛知県名古屋市中村区"@ja ; + "23105" ; + a . + + + ; + "愛知県名古屋市中区"@ja ; + "23106" ; + a . + + + ; + "愛知県名古屋市昭和区"@ja ; + "23107" ; + a . + + + ; + "愛知県名古屋市瑞穂区"@ja ; + "23108" ; + a . + + + ; + "愛知県名古屋市熱田区"@ja ; + "23109" ; + a . + + + ; + "愛知県名古屋市中川区"@ja ; + "23110" ; + a . + + + ; + "愛知県名古屋市港区"@ja ; + "23111" ; + a . + + + ; + "愛知県名古屋市南区"@ja ; + "23112" ; + a . + + + ; + "愛知県名古屋市守山区"@ja ; + "23113" ; + a . + + + ; + "愛知県名古屋市緑区"@ja ; + "23114" ; + a . + + + ; + "愛知県名古屋市名東区"@ja ; + "23115" ; + a . + + + ; + "愛知県名古屋市天白区"@ja ; + "23116" ; + a . + + + ; + "愛知県豊橋市"@ja ; + "23201" ; + a . + + + ; + "愛知県岡崎市"@ja ; + "23202" ; + a . + + + ; + "愛知県一宮市"@ja ; + "23203" ; + a . + + + ; + "愛知県瀬戸市"@ja ; + "23204" ; + a . + + + ; + "愛知県半田市"@ja ; + "23205" ; + a . + + + ; + "愛知県春日井市"@ja ; + "23206" ; + a . + + + ; + "愛知県豊川市"@ja ; + "23207" ; + a . + + + ; + "愛知県津島市"@ja ; + "23208" ; + a . + + + ; + "愛知県碧南市"@ja ; + "23209" ; + a . + + + ; + "愛知県刈谷市"@ja ; + "23210" ; + a . + + + ; + "愛知県豊田市"@ja ; + "23211" ; + a . + + + ; + "愛知県安城市"@ja ; + "23212" ; + a . + + + ; + "愛知県西尾市"@ja ; + "23213" ; + a . + + + ; + "愛知県蒲郡市"@ja ; + "23214" ; + a . + + + ; + "愛知県犬山市"@ja ; + "23215" ; + a . + + + ; + "愛知県常滑市"@ja ; + "23216" ; + a . + + + ; + "愛知県江南市"@ja ; + "23217" ; + a . + + + ; + "愛知県小牧市"@ja ; + "23219" ; + a . + + + ; + "愛知県稲沢市"@ja ; + "23220" ; + a . + + + ; + "愛知県新城市"@ja ; + "23221" ; + a . + + + ; + "愛知県東海市"@ja ; + "23222" ; + a . + + + ; + "愛知県大府市"@ja ; + "23223" ; + a . + + + ; + "愛知県知多市"@ja ; + "23224" ; + a . + + + ; + "愛知県知立市"@ja ; + "23225" ; + a . + + + ; + "愛知県尾張旭市"@ja ; + "23226" ; + a . + + + ; + "愛知県高浜市"@ja ; + "23227" ; + a . + + + ; + "愛知県岩倉市"@ja ; + "23228" ; + a . + + + ; + "愛知県豊明市"@ja ; + "23229" ; + a . + + + ; + "愛知県日進市"@ja ; + "23230" ; + a . + + + ; + "愛知県田原市"@ja ; + "23231" ; + a . + + + ; + "愛知県愛西市"@ja ; + "23232" ; + a . + + + ; + "愛知県清須市"@ja ; + "23233" ; + a . + + + ; + "愛知県北名古屋市"@ja ; + "23234" ; + a . + + + ; + "愛知県弥富市"@ja ; + "23235" ; + a . + + + ; + "愛知県みよし市"@ja ; + "23236" ; + a . + + + ; + "愛知県あま市"@ja ; + "23237" ; + a . + + + ; + "愛知県長久手市"@ja ; + "23238" ; + a . + + + ; + "愛知県東郷町"@ja ; + "23302" ; + a . + + + ; + "愛知県豊山町"@ja ; + "23342" ; + a . + + + ; + "愛知県大口町"@ja ; + "23361" ; + a . + + + ; + "愛知県扶桑町"@ja ; + "23362" ; + a . + + + ; + "愛知県大治町"@ja ; + "23424" ; + a . + + + ; + "愛知県蟹江町"@ja ; + "23425" ; + a . + + + ; + "愛知県飛島村"@ja ; + "23427" ; + a . + + + ; + "愛知県阿久比町"@ja ; + "23441" ; + a . + + + ; + "愛知県東浦町"@ja ; + "23442" ; + a . + + + ; + "愛知県南知多町"@ja ; + "23445" ; + a . + + + ; + "愛知県美浜町"@ja ; + "23446" ; + a . + + + ; + "愛知県武豊町"@ja ; + "23447" ; + a . + + + ; + "愛知県幸田町"@ja ; + "23501" ; + a . + + + ; + "愛知県設楽町"@ja ; + "23561" ; + a . + + + ; + "愛知県東栄町"@ja ; + "23562" ; + a . + + + ; + "愛知県豊根村"@ja ; + "23563" ; + a . + + + ; + "三重県津市"@ja ; + "24201" ; + a . + + + ; + "三重県四日市市"@ja ; + "24202" ; + a . + + + ; + "三重県伊勢市"@ja ; + "24203" ; + a . + + + ; + "三重県松阪市"@ja ; + "24204" ; + a . + + + ; + "三重県桑名市"@ja ; + "24205" ; + a . + + + ; + "三重県鈴鹿市"@ja ; + "24207" ; + a . + + + ; + "三重県名張市"@ja ; + "24208" ; + a . + + + ; + "三重県尾鷲市"@ja ; + "24209" ; + a . + + + ; + "三重県亀山市"@ja ; + "24210" ; + a . + + + ; + "三重県鳥羽市"@ja ; + "24211" ; + a . + + + ; + "三重県熊野市"@ja ; + "24212" ; + a . + + + ; + "三重県いなべ市"@ja ; + "24214" ; + a . + + + ; + "三重県志摩市"@ja ; + "24215" ; + a . + + + ; + "三重県伊賀市"@ja ; + "24216" ; + a . + + + ; + "三重県木曽岬町"@ja ; + "24303" ; + a . + + + ; + "三重県東員町"@ja ; + "24324" ; + a . + + + ; + "三重県菰野町"@ja ; + "24341" ; + a . + + + ; + "三重県朝日町"@ja ; + "24343" ; + a . + + + ; + "三重県川越町"@ja ; + "24344" ; + a . + + + ; + "三重県多気町"@ja ; + "24441" ; + a . + + + ; + "三重県明和町"@ja ; + "24442" ; + a . + + + ; + "三重県大台町"@ja ; + "24443" ; + a . + + + ; + "三重県玉城町"@ja ; + "24461" ; + a . + + + ; + "三重県度会町"@ja ; + "24470" ; + a . + + + ; + "三重県大紀町"@ja ; + "24471" ; + a . + + + ; + "三重県南伊勢町"@ja ; + "24472" ; + a . + + + ; + "三重県紀北町"@ja ; + "24543" ; + a . + + + ; + "三重県御浜町"@ja ; + "24561" ; + a . + + + ; + "三重県紀宝町"@ja ; + "24562" ; + a . + + + ; + "滋賀県大津市"@ja ; + "25201" ; + a . + + + ; + "滋賀県彦根市"@ja ; + "25202" ; + a . + + + ; + "滋賀県長浜市"@ja ; + "25203" ; + a . + + + ; + "滋賀県近江八幡市"@ja ; + "25204" ; + a . + + + ; + "滋賀県草津市"@ja ; + "25206" ; + a . + + + ; + "滋賀県守山市"@ja ; + "25207" ; + a . + + + ; + "滋賀県栗東市"@ja ; + "25208" ; + a . + + + ; + "滋賀県甲賀市"@ja ; + "25209" ; + a . + + + ; + "滋賀県野洲市"@ja ; + "25210" ; + a . + + + ; + "滋賀県湖南市"@ja ; + "25211" ; + a . + + + ; + "滋賀県高島市"@ja ; + "25212" ; + a . + + + ; + "滋賀県東近江市"@ja ; + "25213" ; + a . + + + ; + "滋賀県米原市"@ja ; + "25214" ; + a . + + + ; + "滋賀県日野町"@ja ; + "25383" ; + a . + + + ; + "滋賀県竜王町"@ja ; + "25384" ; + a . + + + ; + "滋賀県愛荘町"@ja ; + "25425" ; + a . + + + ; + "滋賀県豊郷町"@ja ; + "25441" ; + a . + + + ; + "滋賀県甲良町"@ja ; + "25442" ; + a . + + + ; + "滋賀県多賀町"@ja ; + "25443" ; + a . + + + ; + "京都府京都市"@ja ; + "26100" ; + a . + + + ; + "京都府京都市北区"@ja ; + "26101" ; + a . + + + ; + "京都府京都市上京区"@ja ; + "26102" ; + a . + + + ; + "京都府京都市左京区"@ja ; + "26103" ; + a . + + + ; + "京都府京都市中京区"@ja ; + "26104" ; + a . + + + ; + "京都府京都市東山区"@ja ; + "26105" ; + a . + + + ; + "京都府京都市下京区"@ja ; + "26106" ; + a . + + + ; + "京都府京都市南区"@ja ; + "26107" ; + a . + + + ; + "京都府京都市右京区"@ja ; + "26108" ; + a . + + + ; + "京都府京都市伏見区"@ja ; + "26109" ; + a . + + + ; + "京都府京都市山科区"@ja ; + "26110" ; + a . + + + ; + "京都府京都市西京区"@ja ; + "26111" ; + a . + + + ; + "京都府福知山市"@ja ; + "26201" ; + a . + + + ; + "京都府舞鶴市"@ja ; + "26202" ; + a . + + + ; + "京都府綾部市"@ja ; + "26203" ; + a . + + + ; + "京都府宇治市"@ja ; + "26204" ; + a . + + + ; + "京都府宮津市"@ja ; + "26205" ; + a . + + + ; + "京都府亀岡市"@ja ; + "26206" ; + a . + + + ; + "京都府城陽市"@ja ; + "26207" ; + a . + + + ; + "京都府向日市"@ja ; + "26208" ; + a . + + + ; + "京都府長岡京市"@ja ; + "26209" ; + a . + + + ; + "京都府八幡市"@ja ; + "26210" ; + a . + + + ; + "京都府京田辺市"@ja ; + "26211" ; + a . + + + ; + "京都府京丹後市"@ja ; + "26212" ; + a . + + + ; + "京都府南丹市"@ja ; + "26213" ; + a . + + + ; + "京都府木津川市"@ja ; + "26214" ; + a . + + + ; + "京都府大山崎町"@ja ; + "26303" ; + a . + + + ; + "京都府久御山町"@ja ; + "26322" ; + a . + + + ; + "京都府井手町"@ja ; + "26343" ; + a . + + + ; + "京都府宇治田原町"@ja ; + "26344" ; + a . + + + ; + "京都府笠置町"@ja ; + "26364" ; + a . + + + ; + "京都府和束町"@ja ; + "26365" ; + a . + + + ; + "京都府精華町"@ja ; + "26366" ; + a . + + + ; + "京都府南山城村"@ja ; + "26367" ; + a . + + + ; + "京都府京丹波町"@ja ; + "26407" ; + a . + + + ; + "京都府伊根町"@ja ; + "26463" ; + a . + + + ; + "京都府与謝野町"@ja ; + "26465" ; + a . + + + ; + "大阪府大阪市"@ja ; + "27100" ; + a . + + + ; + "大阪府大阪市都島区"@ja ; + "27102" ; + a . + + + ; + "大阪府大阪市福島区"@ja ; + "27103" ; + a . + + + ; + "大阪府大阪市此花区"@ja ; + "27104" ; + a . + + + ; + "大阪府大阪市西区"@ja ; + "27106" ; + a . + + + ; + "大阪府大阪市港区"@ja ; + "27107" ; + a . + + + ; + "大阪府大阪市大正区"@ja ; + "27108" ; + a . + + + ; + "大阪府大阪市天王寺区"@ja ; + "27109" ; + a . + + + ; + "大阪府大阪市浪速区"@ja ; + "27111" ; + a . + + + ; + "大阪府大阪市西淀川区"@ja ; + "27113" ; + a . + + + ; + "大阪府大阪市東淀川区"@ja ; + "27114" ; + a . + + + ; + "大阪府大阪市東成区"@ja ; + "27115" ; + a . + + + ; + "大阪府大阪市生野区"@ja ; + "27116" ; + a . + + + ; + "大阪府大阪市旭区"@ja ; + "27117" ; + a . + + + ; + "大阪府大阪市城東区"@ja ; + "27118" ; + a . + + + ; + "大阪府大阪市阿倍野区"@ja ; + "27119" ; + a . + + + ; + "大阪府大阪市住吉区"@ja ; + "27120" ; + a . + + + ; + "大阪府大阪市東住吉区"@ja ; + "27121" ; + a . + + + ; + "大阪府大阪市西成区"@ja ; + "27122" ; + a . + + + ; + "大阪府大阪市淀川区"@ja ; + "27123" ; + a . + + + ; + "大阪府大阪市鶴見区"@ja ; + "27124" ; + a . + + + ; + "大阪府大阪市住之江区"@ja ; + "27125" ; + a . + + + ; + "大阪府大阪市平野区"@ja ; + "27126" ; + a . + + + ; + "大阪府大阪市北区"@ja ; + "27127" ; + a . + + + ; + "大阪府大阪市中央区"@ja ; + "27128" ; + a . + + + ; + "大阪府堺市"@ja ; + "27140" ; + a . + + + ; + "大阪府堺市堺区"@ja ; + "27141" ; + a . + + + ; + "大阪府堺市中区"@ja ; + "27142" ; + a . + + + ; + "大阪府堺市東区"@ja ; + "27143" ; + a . + + + ; + "大阪府堺市西区"@ja ; + "27144" ; + a . + + + ; + "大阪府堺市南区"@ja ; + "27145" ; + a . + + + ; + "大阪府堺市北区"@ja ; + "27146" ; + a . + + + ; + "大阪府堺市美原区"@ja ; + "27147" ; + a . + + + ; + "大阪府岸和田市"@ja ; + "27202" ; + a . + + + ; + "大阪府豊中市"@ja ; + "27203" ; + a . + + + ; + "大阪府池田市"@ja ; + "27204" ; + a . + + + ; + "大阪府吹田市"@ja ; + "27205" ; + a . + + + ; + "大阪府泉大津市"@ja ; + "27206" ; + a . + + + ; + "大阪府高槻市"@ja ; + "27207" ; + a . + + + ; + "大阪府貝塚市"@ja ; + "27208" ; + a . + + + ; + "大阪府守口市"@ja ; + "27209" ; + a . + + + ; + "大阪府枚方市"@ja ; + "27210" ; + a . + + + ; + "大阪府茨木市"@ja ; + "27211" ; + a . + + + ; + "大阪府八尾市"@ja ; + "27212" ; + a . + + + ; + "大阪府泉佐野市"@ja ; + "27213" ; + a . + + + ; + "大阪府富田林市"@ja ; + "27214" ; + a . + + + ; + "大阪府寝屋川市"@ja ; + "27215" ; + a . + + + ; + "大阪府河内長野市"@ja ; + "27216" ; + a . + + + ; + "大阪府松原市"@ja ; + "27217" ; + a . + + + ; + "大阪府大東市"@ja ; + "27218" ; + a . + + + ; + "大阪府和泉市"@ja ; + "27219" ; + a . + + + ; + "大阪府箕面市"@ja ; + "27220" ; + a . + + + ; + "大阪府柏原市"@ja ; + "27221" ; + a . + + + ; + "大阪府羽曳野市"@ja ; + "27222" ; + a . + + + ; + "大阪府門真市"@ja ; + "27223" ; + a . + + + ; + "大阪府摂津市"@ja ; + "27224" ; + a . + + + ; + "大阪府高石市"@ja ; + "27225" ; + a . + + + ; + "大阪府藤井寺市"@ja ; + "27226" ; + a . + + + ; + "大阪府東大阪市"@ja ; + "27227" ; + a . + + + ; + "大阪府泉南市"@ja ; + "27228" ; + a . + + + ; + "大阪府四條畷市"@ja ; + "27229" ; + a . + + + ; + "大阪府交野市"@ja ; + "27230" ; + a . + + + ; + "大阪府大阪狭山市"@ja ; + "27231" ; + a . + + + ; + "大阪府阪南市"@ja ; + "27232" ; + a . + + + ; + "大阪府島本町"@ja ; + "27301" ; + a . + + + ; + "大阪府豊能町"@ja ; + "27321" ; + a . + + + ; + "大阪府能勢町"@ja ; + "27322" ; + a . + + + ; + "大阪府忠岡町"@ja ; + "27341" ; + a . + + + ; + "大阪府熊取町"@ja ; + "27361" ; + a . + + + ; + "大阪府田尻町"@ja ; + "27362" ; + a . + + + ; + "大阪府岬町"@ja ; + "27366" ; + a . + + + ; + "大阪府太子町"@ja ; + "27381" ; + a . + + + ; + "大阪府河南町"@ja ; + "27382" ; + a . + + + ; + "大阪府千早赤阪村"@ja ; + "27383" ; + a . + + + ; + "兵庫県神戸市"@ja ; + "28100" ; + a . + + + ; + "兵庫県神戸市東灘区"@ja ; + "28101" ; + a . + + + ; + "兵庫県神戸市灘区"@ja ; + "28102" ; + a . + + + ; + "兵庫県神戸市兵庫区"@ja ; + "28105" ; + a . + + + ; + "兵庫県神戸市長田区"@ja ; + "28106" ; + a . + + + ; + "兵庫県神戸市須磨区"@ja ; + "28107" ; + a . + + + ; + "兵庫県神戸市垂水区"@ja ; + "28108" ; + a . + + + ; + "兵庫県神戸市北区"@ja ; + "28109" ; + a . + + + ; + "兵庫県神戸市中央区"@ja ; + "28110" ; + a . + + + ; + "兵庫県神戸市西区"@ja ; + "28111" ; + a . + + + ; + "兵庫県姫路市"@ja ; + "28201" ; + a . + + + ; + "兵庫県尼崎市"@ja ; + "28202" ; + a . + + + ; + "兵庫県明石市"@ja ; + "28203" ; + a . + + + ; + "兵庫県西宮市"@ja ; + "28204" ; + a . + + + ; + "兵庫県洲本市"@ja ; + "28205" ; + a . + + + ; + "兵庫県芦屋市"@ja ; + "28206" ; + a . + + + ; + "兵庫県伊丹市"@ja ; + "28207" ; + a . + + + ; + "兵庫県相生市"@ja ; + "28208" ; + a . + + + ; + "兵庫県豊岡市"@ja ; + "28209" ; + a . + + + ; + "兵庫県加古川市"@ja ; + "28210" ; + a . + + + ; + "兵庫県赤穂市"@ja ; + "28212" ; + a . + + + ; + "兵庫県西脇市"@ja ; + "28213" ; + a . + + + ; + "兵庫県宝塚市"@ja ; + "28214" ; + a . + + + ; + "兵庫県三木市"@ja ; + "28215" ; + a . + + + ; + "兵庫県高砂市"@ja ; + "28216" ; + a . + + + ; + "兵庫県川西市"@ja ; + "28217" ; + a . + + + ; + "兵庫県小野市"@ja ; + "28218" ; + a . + + + ; + "兵庫県三田市"@ja ; + "28219" ; + a . + + + ; + "兵庫県加西市"@ja ; + "28220" ; + a . + + + ; + "兵庫県篠山市"@ja ; + "28221" ; + a . + + + ; + "兵庫県養父市"@ja ; + "28222" ; + a . + + + ; + "兵庫県丹波市"@ja ; + "28223" ; + a . + + + ; + "兵庫県南あわじ市"@ja ; + "28224" ; + a . + + + ; + "兵庫県朝来市"@ja ; + "28225" ; + a . + + + ; + "兵庫県淡路市"@ja ; + "28226" ; + a . + + + ; + "兵庫県宍粟市"@ja ; + "28227" ; + a . + + + ; + "兵庫県加東市"@ja ; + "28228" ; + a . + + + ; + "兵庫県たつの市"@ja ; + "28229" ; + a . + + + ; + "兵庫県猪名川町"@ja ; + "28301" ; + a . + + + ; + "兵庫県多可町"@ja ; + "28365" ; + a . + + + ; + "兵庫県稲美町"@ja ; + "28381" ; + a . + + + ; + "兵庫県播磨町"@ja ; + "28382" ; + a . + + + ; + "兵庫県市川町"@ja ; + "28442" ; + a . + + + ; + "兵庫県福崎町"@ja ; + "28443" ; + a . + + + ; + "兵庫県神河町"@ja ; + "28446" ; + a . + + + ; + "兵庫県太子町"@ja ; + "28464" ; + a . + + + ; + "兵庫県上郡町"@ja ; + "28481" ; + a . + + + ; + "兵庫県佐用町"@ja ; + "28501" ; + a . + + + ; + "兵庫県香美町"@ja ; + "28585" ; + a . + + + ; + "兵庫県新温泉町"@ja ; + "28586" ; + a . + + + ; + "奈良県奈良市"@ja ; + "29201" ; + a . + + + ; + "奈良県大和高田市"@ja ; + "29202" ; + a . + + + ; + "奈良県大和郡山市"@ja ; + "29203" ; + a . + + + ; + "奈良県天理市"@ja ; + "29204" ; + a . + + + ; + "奈良県橿原市"@ja ; + "29205" ; + a . + + + ; + "奈良県桜井市"@ja ; + "29206" ; + a . + + + ; + "奈良県五條市"@ja ; + "29207" ; + a . + + + ; + "奈良県御所市"@ja ; + "29208" ; + a . + + + ; + "奈良県生駒市"@ja ; + "29209" ; + a . + + + ; + "奈良県香芝市"@ja ; + "29210" ; + a . + + + ; + "奈良県葛城市"@ja ; + "29211" ; + a . + + + ; + "奈良県宇陀市"@ja ; + "29212" ; + a . + + + ; + "奈良県山添村"@ja ; + "29322" ; + a . + + + ; + "奈良県平群町"@ja ; + "29342" ; + a . + + + ; + "奈良県三郷町"@ja ; + "29343" ; + a . + + + ; + "奈良県斑鳩町"@ja ; + "29344" ; + a . + + + ; + "奈良県安堵町"@ja ; + "29345" ; + a . + + + ; + "奈良県川西町"@ja ; + "29361" ; + a . + + + ; + "奈良県三宅町"@ja ; + "29362" ; + a . + + + ; + "奈良県田原本町"@ja ; + "29363" ; + a . + + + ; + "奈良県曽爾村"@ja ; + "29385" ; + a . + + + ; + "奈良県御杖村"@ja ; + "29386" ; + a . + + + ; + "奈良県高取町"@ja ; + "29401" ; + a . + + + ; + "奈良県明日香村"@ja ; + "29402" ; + a . + + + ; + "奈良県上牧町"@ja ; + "29424" ; + a . + + + ; + "奈良県王寺町"@ja ; + "29425" ; + a . + + + ; + "奈良県広陵町"@ja ; + "29426" ; + a . + + + ; + "奈良県河合町"@ja ; + "29427" ; + a . + + + ; + "奈良県吉野町"@ja ; + "29441" ; + a . + + + ; + "奈良県大淀町"@ja ; + "29442" ; + a . + + + ; + "奈良県下市町"@ja ; + "29443" ; + a . + + + ; + "奈良県黒滝村"@ja ; + "29444" ; + a . + + + ; + "奈良県天川村"@ja ; + "29446" ; + a . + + + ; + "奈良県野迫川村"@ja ; + "29447" ; + a . + + + ; + "奈良県十津川村"@ja ; + "29449" ; + a . + + + ; + "奈良県下北山村"@ja ; + "29450" ; + a . + + + ; + "奈良県上北山村"@ja ; + "29451" ; + a . + + + ; + "奈良県川上村"@ja ; + "29452" ; + a . + + + ; + "奈良県東吉野村"@ja ; + "29453" ; + a . + + + ; + "和歌山県和歌山市"@ja ; + "30201" ; + a . + + + ; + "和歌山県海南市"@ja ; + "30202" ; + a . + + + ; + "和歌山県橋本市"@ja ; + "30203" ; + a . + + + ; + "和歌山県有田市"@ja ; + "30204" ; + a . + + + ; + "和歌山県御坊市"@ja ; + "30205" ; + a . + + + ; + "和歌山県田辺市"@ja ; + "30206" ; + a . + + + ; + "和歌山県新宮市"@ja ; + "30207" ; + a . + + + ; + "和歌山県紀の川市"@ja ; + "30208" ; + a . + + + ; + "和歌山県岩出市"@ja ; + "30209" ; + a . + + + ; + "和歌山県紀美野町"@ja ; + "30304" ; + a . + + + ; + "和歌山県かつらぎ町"@ja ; + "30341" ; + a . + + + ; + "和歌山県九度山町"@ja ; + "30343" ; + a . + + + ; + "和歌山県高野町"@ja ; + "30344" ; + a . + + + ; + "和歌山県湯浅町"@ja ; + "30361" ; + a . + + + ; + "和歌山県広川町"@ja ; + "30362" ; + a . + + + ; + "和歌山県有田川町"@ja ; + "30366" ; + a . + + + ; + "和歌山県美浜町"@ja ; + "30381" ; + a . + + + ; + "和歌山県日高町"@ja ; + "30382" ; + a . + + + ; + "和歌山県由良町"@ja ; + "30383" ; + a . + + + ; + "和歌山県印南町"@ja ; + "30390" ; + a . + + + ; + "和歌山県みなべ町"@ja ; + "30391" ; + a . + + + ; + "和歌山県日高川町"@ja ; + "30392" ; + a . + + + ; + "和歌山県白浜町"@ja ; + "30401" ; + a . + + + ; + "和歌山県上富田町"@ja ; + "30404" ; + a . + + + ; + "和歌山県すさみ町"@ja ; + "30406" ; + a . + + + ; + "和歌山県那智勝浦町"@ja ; + "30421" ; + a . + + + ; + "和歌山県太地町"@ja ; + "30422" ; + a . + + + ; + "和歌山県古座川町"@ja ; + "30424" ; + a . + + + ; + "和歌山県北山村"@ja ; + "30427" ; + a . + + + ; + "和歌山県串本町"@ja ; + "30428" ; + a . + + + ; + "鳥取県鳥取市"@ja ; + "31201" ; + a . + + + ; + "鳥取県米子市"@ja ; + "31202" ; + a . + + + ; + "鳥取県倉吉市"@ja ; + "31203" ; + a . + + + ; + "鳥取県境港市"@ja ; + "31204" ; + a . + + + ; + "鳥取県岩美町"@ja ; + "31302" ; + a . + + + ; + "鳥取県若桜町"@ja ; + "31325" ; + a . + + + ; + "鳥取県智頭町"@ja ; + "31328" ; + a . + + + ; + "鳥取県八頭町"@ja ; + "31329" ; + a . + + + ; + "鳥取県三朝町"@ja ; + "31364" ; + a . + + + ; + "鳥取県湯梨浜町"@ja ; + "31370" ; + a . + + + ; + "鳥取県琴浦町"@ja ; + "31371" ; + a . + + + ; + "鳥取県北栄町"@ja ; + "31372" ; + a . + + + ; + "鳥取県日吉津村"@ja ; + "31384" ; + a . + + + ; + "鳥取県大山町"@ja ; + "31386" ; + a . + + + ; + "鳥取県南部町"@ja ; + "31389" ; + a . + + + ; + "鳥取県伯耆町"@ja ; + "31390" ; + a . + + + ; + "鳥取県日南町"@ja ; + "31401" ; + a . + + + ; + "鳥取県日野町"@ja ; + "31402" ; + a . + + + ; + "鳥取県江府町"@ja ; + "31403" ; + a . + + + ; + "島根県松江市"@ja ; + "32201" ; + a . + + + ; + "島根県浜田市"@ja ; + "32202" ; + a . + + + ; + "島根県出雲市"@ja ; + "32203" ; + a . + + + ; + "島根県益田市"@ja ; + "32204" ; + a . + + + ; + "島根県大田市"@ja ; + "32205" ; + a . + + + ; + "島根県安来市"@ja ; + "32206" ; + a . + + + ; + "島根県江津市"@ja ; + "32207" ; + a . + + + ; + "島根県雲南市"@ja ; + "32209" ; + a . + + + ; + "島根県奥出雲町"@ja ; + "32343" ; + a . + + + ; + "島根県飯南町"@ja ; + "32386" ; + a . + + + ; + "島根県川本町"@ja ; + "32441" ; + a . + + + ; + "島根県美郷町"@ja ; + "32448" ; + a . + + + ; + "島根県邑南町"@ja ; + "32449" ; + a . + + + ; + "島根県津和野町"@ja ; + "32501" ; + a . + + + ; + "島根県吉賀町"@ja ; + "32505" ; + a . + + + ; + "島根県海士町"@ja ; + "32525" ; + a . + + + ; + "島根県西ノ島町"@ja ; + "32526" ; + a . + + + ; + "島根県知夫村"@ja ; + "32527" ; + a . + + + ; + "島根県隠岐の島町"@ja ; + "32528" ; + a . + + + ; + "岡山県岡山市"@ja ; + "33100" ; + a . + + + ; + "岡山県岡山市北区"@ja ; + "33101" ; + a . + + + ; + "岡山県岡山市中区"@ja ; + "33102" ; + a . + + + ; + "岡山県岡山市東区"@ja ; + "33103" ; + a . + + + ; + "岡山県岡山市南区"@ja ; + "33104" ; + a . + + + ; + "岡山県倉敷市"@ja ; + "33202" ; + a . + + + ; + "岡山県津山市"@ja ; + "33203" ; + a . + + + ; + "岡山県玉野市"@ja ; + "33204" ; + a . + + + ; + "岡山県笠岡市"@ja ; + "33205" ; + a . + + + ; + "岡山県井原市"@ja ; + "33207" ; + a . + + + ; + "岡山県総社市"@ja ; + "33208" ; + a . + + + ; + "岡山県高梁市"@ja ; + "33209" ; + a . + + + ; + "岡山県新見市"@ja ; + "33210" ; + a . + + + ; + "岡山県備前市"@ja ; + "33211" ; + a . + + + ; + "岡山県瀬戸内市"@ja ; + "33212" ; + a . + + + ; + "岡山県赤磐市"@ja ; + "33213" ; + a . + + + ; + "岡山県真庭市"@ja ; + "33214" ; + a . + + + ; + "岡山県美作市"@ja ; + "33215" ; + a . + + + ; + "岡山県浅口市"@ja ; + "33216" ; + a . + + + ; + "岡山県和気町"@ja ; + "33346" ; + a . + + + ; + "岡山県早島町"@ja ; + "33423" ; + a . + + + ; + "岡山県里庄町"@ja ; + "33445" ; + a . + + + ; + "岡山県矢掛町"@ja ; + "33461" ; + a . + + + ; + "岡山県新庄村"@ja ; + "33586" ; + a . + + + ; + "岡山県鏡野町"@ja ; + "33606" ; + a . + + + ; + "岡山県勝央町"@ja ; + "33622" ; + a . + + + ; + "岡山県奈義町"@ja ; + "33623" ; + a . + + + ; + "岡山県西粟倉村"@ja ; + "33643" ; + a . + + + ; + "岡山県久米南町"@ja ; + "33663" ; + a . + + + ; + "岡山県美咲町"@ja ; + "33666" ; + a . + + + ; + "岡山県吉備中央町"@ja ; + "33681" ; + a . + + + ; + "広島県広島市"@ja ; + "34100" ; + a . + + + ; + "広島県広島市中区"@ja ; + "34101" ; + a . + + + ; + "広島県広島市東区"@ja ; + "34102" ; + a . + + + ; + "広島県広島市南区"@ja ; + "34103" ; + a . + + + ; + "広島県広島市西区"@ja ; + "34104" ; + a . + + + ; + "広島県広島市安佐南区"@ja ; + "34105" ; + a . + + + ; + "広島県広島市安佐北区"@ja ; + "34106" ; + a . + + + ; + "広島県広島市安芸区"@ja ; + "34107" ; + a . + + + ; + "広島県広島市佐伯区"@ja ; + "34108" ; + a . + + + ; + "広島県呉市"@ja ; + "34202" ; + a . + + + ; + "広島県竹原市"@ja ; + "34203" ; + a . + + + ; + "広島県三原市"@ja ; + "34204" ; + a . + + + ; + "広島県尾道市"@ja ; + "34205" ; + a . + + + ; + "広島県福山市"@ja ; + "34207" ; + a . + + + ; + "広島県府中市"@ja ; + "34208" ; + a . + + + ; + "広島県三次市"@ja ; + "34209" ; + a . + + + ; + "広島県庄原市"@ja ; + "34210" ; + a . + + + ; + "広島県大竹市"@ja ; + "34211" ; + a . + + + ; + "広島県東広島市"@ja ; + "34212" ; + a . + + + ; + "広島県廿日市市"@ja ; + "34213" ; + a . + + + ; + "広島県安芸高田市"@ja ; + "34214" ; + a . + + + ; + "広島県江田島市"@ja ; + "34215" ; + a . + + + ; + "広島県府中町"@ja ; + "34302" ; + a . + + + ; + "広島県海田町"@ja ; + "34304" ; + a . + + + ; + "広島県熊野町"@ja ; + "34307" ; + a . + + + ; + "広島県坂町"@ja ; + "34309" ; + a . + + + ; + "広島県安芸太田町"@ja ; + "34368" ; + a . + + + ; + "広島県北広島町"@ja ; + "34369" ; + a . + + + ; + "広島県大崎上島町"@ja ; + "34431" ; + a . + + + ; + "広島県世羅町"@ja ; + "34462" ; + a . + + + ; + "広島県神石高原町"@ja ; + "34545" ; + a . + + + ; + "山口県下関市"@ja ; + "35201" ; + a . + + + ; + "山口県宇部市"@ja ; + "35202" ; + a . + + + ; + "山口県山口市"@ja ; + "35203" ; + a . + + + ; + "山口県萩市"@ja ; + "35204" ; + a . + + + ; + "山口県防府市"@ja ; + "35206" ; + a . + + + ; + "山口県下松市"@ja ; + "35207" ; + a . + + + ; + "山口県岩国市"@ja ; + "35208" ; + a . + + + ; + "山口県光市"@ja ; + "35210" ; + a . + + + ; + "山口県長門市"@ja ; + "35211" ; + a . + + + ; + "山口県柳井市"@ja ; + "35212" ; + a . + + + ; + "山口県美祢市"@ja ; + "35213" ; + a . + + + ; + "山口県周南市"@ja ; + "35215" ; + a . + + + ; + "山口県山陽小野田市"@ja ; + "35216" ; + a . + + + ; + "山口県周防大島町"@ja ; + "35305" ; + a . + + + ; + "山口県和木町"@ja ; + "35321" ; + a . + + + ; + "山口県上関町"@ja ; + "35341" ; + a . + + + ; + "山口県田布施町"@ja ; + "35343" ; + a . + + + ; + "山口県平生町"@ja ; + "35344" ; + a . + + + ; + "山口県阿武町"@ja ; + "35502" ; + a . + + + ; + "徳島県徳島市"@ja ; + "36201" ; + a . + + + ; + "徳島県鳴門市"@ja ; + "36202" ; + a . + + + ; + "徳島県小松島市"@ja ; + "36203" ; + a . + + + ; + "徳島県阿南市"@ja ; + "36204" ; + a . + + + ; + "徳島県吉野川市"@ja ; + "36205" ; + a . + + + ; + "徳島県阿波市"@ja ; + "36206" ; + a . + + + ; + "徳島県美馬市"@ja ; + "36207" ; + a . + + + ; + "徳島県三好市"@ja ; + "36208" ; + a . + + + ; + "徳島県勝浦町"@ja ; + "36301" ; + a . + + + ; + "徳島県上勝町"@ja ; + "36302" ; + a . + + + ; + "徳島県佐那河内村"@ja ; + "36321" ; + a . + + + ; + "徳島県石井町"@ja ; + "36341" ; + a . + + + ; + "徳島県神山町"@ja ; + "36342" ; + a . + + + ; + "徳島県那賀町"@ja ; + "36368" ; + a . + + + ; + "徳島県牟岐町"@ja ; + "36383" ; + a . + + + ; + "徳島県美波町"@ja ; + "36387" ; + a . + + + ; + "徳島県海陽町"@ja ; + "36388" ; + a . + + + ; + "徳島県松茂町"@ja ; + "36401" ; + a . + + + ; + "徳島県北島町"@ja ; + "36402" ; + a . + + + ; + "徳島県藍住町"@ja ; + "36403" ; + a . + + + ; + "徳島県板野町"@ja ; + "36404" ; + a . + + + ; + "徳島県上板町"@ja ; + "36405" ; + a . + + + ; + "徳島県つるぎ町"@ja ; + "36468" ; + a . + + + ; + "徳島県東みよし町"@ja ; + "36489" ; + a . + + + ; + "香川県高松市"@ja ; + "37201" ; + a . + + + ; + "香川県丸亀市"@ja ; + "37202" ; + a . + + + ; + "香川県坂出市"@ja ; + "37203" ; + a . + + + ; + "香川県善通寺市"@ja ; + "37204" ; + a . + + + ; + "香川県観音寺市"@ja ; + "37205" ; + a . + + + ; + "香川県さぬき市"@ja ; + "37206" ; + a . + + + ; + "香川県東かがわ市"@ja ; + "37207" ; + a . + + + ; + "香川県三豊市"@ja ; + "37208" ; + a . + + + ; + "香川県土庄町"@ja ; + "37322" ; + a . + + + ; + "香川県小豆島町"@ja ; + "37324" ; + a . + + + ; + "香川県三木町"@ja ; + "37341" ; + a . + + + ; + "香川県直島町"@ja ; + "37364" ; + a . + + + ; + "香川県宇多津町"@ja ; + "37386" ; + a . + + + ; + "香川県綾川町"@ja ; + "37387" ; + a . + + + ; + "香川県琴平町"@ja ; + "37403" ; + a . + + + ; + "香川県多度津町"@ja ; + "37404" ; + a . + + + ; + "香川県まんのう町"@ja ; + "37406" ; + a . + + + ; + "愛媛県松山市"@ja ; + "38201" ; + a . + + + ; + "愛媛県今治市"@ja ; + "38202" ; + a . + + + ; + "愛媛県宇和島市"@ja ; + "38203" ; + a . + + + ; + "愛媛県八幡浜市"@ja ; + "38204" ; + a . + + + ; + "愛媛県新居浜市"@ja ; + "38205" ; + a . + + + ; + "愛媛県西条市"@ja ; + "38206" ; + a . + + + ; + "愛媛県大洲市"@ja ; + "38207" ; + a . + + + ; + "愛媛県伊予市"@ja ; + "38210" ; + a . + + + ; + "愛媛県四国中央市"@ja ; + "38213" ; + a . + + + ; + "愛媛県西予市"@ja ; + "38214" ; + a . + + + ; + "愛媛県東温市"@ja ; + "38215" ; + a . + + + ; + "愛媛県上島町"@ja ; + "38356" ; + a . + + + ; + "愛媛県久万高原町"@ja ; + "38386" ; + a . + + + ; + "愛媛県松前町"@ja ; + "38401" ; + a . + + + ; + "愛媛県砥部町"@ja ; + "38402" ; + a . + + + ; + "愛媛県内子町"@ja ; + "38422" ; + a . + + + ; + "愛媛県伊方町"@ja ; + "38442" ; + a . + + + ; + "愛媛県松野町"@ja ; + "38484" ; + a . + + + ; + "愛媛県鬼北町"@ja ; + "38488" ; + a . + + + ; + "愛媛県愛南町"@ja ; + "38506" ; + a . + + + ; + "高知県高知市"@ja ; + "39201" ; + a . + + + ; + "高知県室戸市"@ja ; + "39202" ; + a . + + + ; + "高知県安芸市"@ja ; + "39203" ; + a . + + + ; + "高知県南国市"@ja ; + "39204" ; + a . + + + ; + "高知県土佐市"@ja ; + "39205" ; + a . + + + ; + "高知県須崎市"@ja ; + "39206" ; + a . + + + ; + "高知県宿毛市"@ja ; + "39208" ; + a . + + + ; + "高知県土佐清水市"@ja ; + "39209" ; + a . + + + ; + "高知県四万十市"@ja ; + "39210" ; + a . + + + ; + "高知県香南市"@ja ; + "39211" ; + a . + + + ; + "高知県香美市"@ja ; + "39212" ; + a . + + + ; + "高知県東洋町"@ja ; + "39301" ; + a . + + + ; + "高知県奈半利町"@ja ; + "39302" ; + a . + + + ; + "高知県田野町"@ja ; + "39303" ; + a . + + + ; + "高知県安田町"@ja ; + "39304" ; + a . + + + ; + "高知県北川村"@ja ; + "39305" ; + a . + + + ; + "高知県馬路村"@ja ; + "39306" ; + a . + + + ; + "高知県芸西村"@ja ; + "39307" ; + a . + + + ; + "高知県本山町"@ja ; + "39341" ; + a . + + + ; + "高知県大豊町"@ja ; + "39344" ; + a . + + + ; + "高知県土佐町"@ja ; + "39363" ; + a . + + + ; + "高知県大川村"@ja ; + "39364" ; + a . + + + ; + "高知県いの町"@ja ; + "39386" ; + a . + + + ; + "高知県仁淀川町"@ja ; + "39387" ; + a . + + + ; + "高知県中土佐町"@ja ; + "39401" ; + a . + + + ; + "高知県佐川町"@ja ; + "39402" ; + a . + + + ; + "高知県越知町"@ja ; + "39403" ; + a . + + + ; + "高知県梼原町"@ja ; + "39405" ; + a . + + + ; + "高知県日高村"@ja ; + "39410" ; + a . + + + ; + "高知県津野町"@ja ; + "39411" ; + a . + + + ; + "高知県四万十町"@ja ; + "39412" ; + a . + + + ; + "高知県大月町"@ja ; + "39424" ; + a . + + + ; + "高知県三原村"@ja ; + "39427" ; + a . + + + ; + "高知県黒潮町"@ja ; + "39428" ; + a . + + + ; + "福岡県北九州市"@ja ; + "40100" ; + a . + + + ; + "福岡県北九州市門司区"@ja ; + "40101" ; + a . + + + ; + "福岡県北九州市若松区"@ja ; + "40103" ; + a . + + + ; + "福岡県北九州市戸畑区"@ja ; + "40105" ; + a . + + + ; + "福岡県北九州市小倉北区"@ja ; + "40106" ; + a . + + + ; + "福岡県北九州市小倉南区"@ja ; + "40107" ; + a . + + + ; + "福岡県北九州市八幡東区"@ja ; + "40108" ; + a . + + + ; + "福岡県北九州市八幡西区"@ja ; + "40109" ; + a . + + + ; + "福岡県福岡市"@ja ; + "40130" ; + a . + + + ; + "福岡県福岡市東区"@ja ; + "40131" ; + a . + + + ; + "福岡県福岡市博多区"@ja ; + "40132" ; + a . + + + ; + "福岡県福岡市中央区"@ja ; + "40133" ; + a . + + + ; + "福岡県福岡市南区"@ja ; + "40134" ; + a . + + + ; + "福岡県福岡市西区"@ja ; + "40135" ; + a . + + + ; + "福岡県福岡市城南区"@ja ; + "40136" ; + a . + + + ; + "福岡県福岡市早良区"@ja ; + "40137" ; + a . + + + ; + "福岡県大牟田市"@ja ; + "40202" ; + a . + + + ; + "福岡県久留米市"@ja ; + "40203" ; + a . + + + ; + "福岡県直方市"@ja ; + "40204" ; + a . + + + ; + "福岡県飯塚市"@ja ; + "40205" ; + a . + + + ; + "福岡県田川市"@ja ; + "40206" ; + a . + + + ; + "福岡県柳川市"@ja ; + "40207" ; + a . + + + ; + "福岡県八女市"@ja ; + "40210" ; + a . + + + ; + "福岡県筑後市"@ja ; + "40211" ; + a . + + + ; + "福岡県大川市"@ja ; + "40212" ; + a . + + + ; + "福岡県行橋市"@ja ; + "40213" ; + a . + + + ; + "福岡県豊前市"@ja ; + "40214" ; + a . + + + ; + "福岡県中間市"@ja ; + "40215" ; + a . + + + ; + "福岡県小郡市"@ja ; + "40216" ; + a . + + + ; + "福岡県筑紫野市"@ja ; + "40217" ; + a . + + + ; + "福岡県春日市"@ja ; + "40218" ; + a . + + + ; + "福岡県大野城市"@ja ; + "40219" ; + a . + + + ; + "福岡県宗像市"@ja ; + "40220" ; + a . + + + ; + "福岡県太宰府市"@ja ; + "40221" ; + a . + + + ; + "福岡県古賀市"@ja ; + "40223" ; + a . + + + ; + "福岡県福津市"@ja ; + "40224" ; + a . + + + ; + "福岡県うきは市"@ja ; + "40225" ; + a . + + + ; + "福岡県宮若市"@ja ; + "40226" ; + a . + + + ; + "福岡県嘉麻市"@ja ; + "40227" ; + a . + + + ; + "福岡県朝倉市"@ja ; + "40228" ; + a . + + + ; + "福岡県みやま市"@ja ; + "40229" ; + a . + + + ; + "福岡県糸島市"@ja ; + "40230" ; + a . + + + ; + "福岡県那珂川町"@ja ; + "40305" ; + a . + + + ; + "福岡県宇美町"@ja ; + "40341" ; + a . + + + ; + "福岡県篠栗町"@ja ; + "40342" ; + a . + + + ; + "福岡県志免町"@ja ; + "40343" ; + a . + + + ; + "福岡県須恵町"@ja ; + "40344" ; + a . + + + ; + "福岡県新宮町"@ja ; + "40345" ; + a . + + + ; + "福岡県久山町"@ja ; + "40348" ; + a . + + + ; + "福岡県粕屋町"@ja ; + "40349" ; + a . + + + ; + "福岡県芦屋町"@ja ; + "40381" ; + a . + + + ; + "福岡県水巻町"@ja ; + "40382" ; + a . + + + ; + "福岡県岡垣町"@ja ; + "40383" ; + a . + + + ; + "福岡県遠賀町"@ja ; + "40384" ; + a . + + + ; + "福岡県小竹町"@ja ; + "40401" ; + a . + + + ; + "福岡県鞍手町"@ja ; + "40402" ; + a . + + + ; + "福岡県桂川町"@ja ; + "40421" ; + a . + + + ; + "福岡県筑前町"@ja ; + "40447" ; + a . + + + ; + "福岡県東峰村"@ja ; + "40448" ; + a . + + + ; + "福岡県大刀洗町"@ja ; + "40503" ; + a . + + + ; + "福岡県大木町"@ja ; + "40522" ; + a . + + + ; + "福岡県広川町"@ja ; + "40544" ; + a . + + + ; + "福岡県香春町"@ja ; + "40601" ; + a . + + + ; + "福岡県添田町"@ja ; + "40602" ; + a . + + + ; + "福岡県糸田町"@ja ; + "40604" ; + a . + + + ; + "福岡県川崎町"@ja ; + "40605" ; + a . + + + ; + "福岡県大任町"@ja ; + "40608" ; + a . + + + ; + "福岡県赤村"@ja ; + "40609" ; + a . + + + ; + "福岡県福智町"@ja ; + "40610" ; + a . + + + ; + "福岡県苅田町"@ja ; + "40621" ; + a . + + + ; + "福岡県みやこ町"@ja ; + "40625" ; + a . + + + ; + "福岡県吉富町"@ja ; + "40642" ; + a . + + + ; + "福岡県上毛町"@ja ; + "40646" ; + a . + + + ; + "福岡県築上町"@ja ; + "40647" ; + a . + + + ; + "佐賀県佐賀市"@ja ; + "41201" ; + a . + + + ; + "佐賀県唐津市"@ja ; + "41202" ; + a . + + + ; + "佐賀県鳥栖市"@ja ; + "41203" ; + a . + + + ; + "佐賀県多久市"@ja ; + "41204" ; + a . + + + ; + "佐賀県伊万里市"@ja ; + "41205" ; + a . + + + ; + "佐賀県武雄市"@ja ; + "41206" ; + a . + + + ; + "佐賀県鹿島市"@ja ; + "41207" ; + a . + + + ; + "佐賀県小城市"@ja ; + "41208" ; + a . + + + ; + "佐賀県嬉野市"@ja ; + "41209" ; + a . + + + ; + "佐賀県神埼市"@ja ; + "41210" ; + a . + + + ; + "佐賀県吉野ヶ里町"@ja ; + "41327" ; + a . + + + ; + "佐賀県基山町"@ja ; + "41341" ; + a . + + + ; + "佐賀県上峰町"@ja ; + "41345" ; + a . + + + ; + "佐賀県みやき町"@ja ; + "41346" ; + a . + + + ; + "佐賀県玄海町"@ja ; + "41387" ; + a . + + + ; + "佐賀県有田町"@ja ; + "41401" ; + a . + + + ; + "佐賀県大町町"@ja ; + "41423" ; + a . + + + ; + "佐賀県江北町"@ja ; + "41424" ; + a . + + + ; + "佐賀県白石町"@ja ; + "41425" ; + a . + + + ; + "佐賀県太良町"@ja ; + "41441" ; + a . + + + ; + "長崎県長崎市"@ja ; + "42201" ; + a . + + + ; + "長崎県佐世保市"@ja ; + "42202" ; + a . + + + ; + "長崎県島原市"@ja ; + "42203" ; + a . + + + ; + "長崎県諫早市"@ja ; + "42204" ; + a . + + + ; + "長崎県大村市"@ja ; + "42205" ; + a . + + + ; + "長崎県平戸市"@ja ; + "42207" ; + a . + + + ; + "長崎県松浦市"@ja ; + "42208" ; + a . + + + ; + "長崎県対馬市"@ja ; + "42209" ; + a . + + + ; + "長崎県壱岐市"@ja ; + "42210" ; + a . + + + ; + "長崎県五島市"@ja ; + "42211" ; + a . + + + ; + "長崎県西海市"@ja ; + "42212" ; + a . + + + ; + "長崎県雲仙市"@ja ; + "42213" ; + a . + + + ; + "長崎県南島原市"@ja ; + "42214" ; + a . + + + ; + "長崎県長与町"@ja ; + "42307" ; + a . + + + ; + "長崎県時津町"@ja ; + "42308" ; + a . + + + ; + "長崎県東彼杵町"@ja ; + "42321" ; + a . + + + ; + "長崎県川棚町"@ja ; + "42322" ; + a . + + + ; + "長崎県波佐見町"@ja ; + "42323" ; + a . + + + ; + "長崎県小値賀町"@ja ; + "42383" ; + a . + + + ; + "長崎県佐々町"@ja ; + "42391" ; + a . + + + ; + "長崎県新上五島町"@ja ; + "42411" ; + a . + + + ; + "熊本県熊本市"@ja ; + "43100" ; + a . + + + ; + "熊本県熊本市中央区"@ja ; + "43101" ; + a . + + + ; + "熊本県熊本市東区"@ja ; + "43102" ; + a . + + + ; + "熊本県熊本市西区"@ja ; + "43103" ; + a . + + + ; + "熊本県熊本市南区"@ja ; + "43104" ; + a . + + + ; + "熊本県熊本市北区"@ja ; + "43105" ; + a . + + + ; + "熊本県八代市"@ja ; + "43202" ; + a . + + + ; + "熊本県人吉市"@ja ; + "43203" ; + a . + + + ; + "熊本県荒尾市"@ja ; + "43204" ; + a . + + + ; + "熊本県水俣市"@ja ; + "43205" ; + a . + + + ; + "熊本県玉名市"@ja ; + "43206" ; + a . + + + ; + "熊本県山鹿市"@ja ; + "43208" ; + a . + + + ; + "熊本県菊池市"@ja ; + "43210" ; + a . + + + ; + "熊本県宇土市"@ja ; + "43211" ; + a . + + + ; + "熊本県上天草市"@ja ; + "43212" ; + a . + + + ; + "熊本県宇城市"@ja ; + "43213" ; + a . + + + ; + "熊本県阿蘇市"@ja ; + "43214" ; + a . + + + ; + "熊本県天草市"@ja ; + "43215" ; + a . + + + ; + "熊本県合志市"@ja ; + "43216" ; + a . + + + ; + "熊本県美里町"@ja ; + "43348" ; + a . + + + ; + "熊本県玉東町"@ja ; + "43364" ; + a . + + + ; + "熊本県南関町"@ja ; + "43367" ; + a . + + + ; + "熊本県長洲町"@ja ; + "43368" ; + a . + + + ; + "熊本県和水町"@ja ; + "43369" ; + a . + + + ; + "熊本県大津町"@ja ; + "43403" ; + a . + + + ; + "熊本県菊陽町"@ja ; + "43404" ; + a . + + + ; + "熊本県南小国町"@ja ; + "43423" ; + a . + + + ; + "熊本県小国町"@ja ; + "43424" ; + a . + + + ; + "熊本県産山村"@ja ; + "43425" ; + a . + + + ; + "熊本県高森町"@ja ; + "43428" ; + a . + + + ; + "熊本県西原村"@ja ; + "43432" ; + a . + + + ; + "熊本県南阿蘇村"@ja ; + "43433" ; + a . + + + ; + "熊本県御船町"@ja ; + "43441" ; + a . + + + ; + "熊本県嘉島町"@ja ; + "43442" ; + a . + + + ; + "熊本県益城町"@ja ; + "43443" ; + a . + + + ; + "熊本県甲佐町"@ja ; + "43444" ; + a . + + + ; + "熊本県山都町"@ja ; + "43447" ; + a . + + + ; + "熊本県氷川町"@ja ; + "43468" ; + a . + + + ; + "熊本県芦北町"@ja ; + "43482" ; + a . + + + ; + "熊本県津奈木町"@ja ; + "43484" ; + a . + + + ; + "熊本県錦町"@ja ; + "43501" ; + a . + + + ; + "熊本県多良木町"@ja ; + "43505" ; + a . + + + ; + "熊本県湯前町"@ja ; + "43506" ; + a . + + + ; + "熊本県水上村"@ja ; + "43507" ; + a . + + + ; + "熊本県相良村"@ja ; + "43510" ; + a . + + + ; + "熊本県五木村"@ja ; + "43511" ; + a . + + + ; + "熊本県山江村"@ja ; + "43512" ; + a . + + + ; + "熊本県球磨村"@ja ; + "43513" ; + a . + + + ; + "熊本県あさぎり町"@ja ; + "43514" ; + a . + + + ; + "熊本県苓北町"@ja ; + "43531" ; + a . + + + ; + "大分県大分市"@ja ; + "44201" ; + a . + + + ; + "大分県別府市"@ja ; + "44202" ; + a . + + + ; + "大分県中津市"@ja ; + "44203" ; + a . + + + ; + "大分県日田市"@ja ; + "44204" ; + a . + + + ; + "大分県佐伯市"@ja ; + "44205" ; + a . + + + ; + "大分県臼杵市"@ja ; + "44206" ; + a . + + + ; + "大分県津久見市"@ja ; + "44207" ; + a . + + + ; + "大分県竹田市"@ja ; + "44208" ; + a . + + + ; + "大分県豊後高田市"@ja ; + "44209" ; + a . + + + ; + "大分県杵築市"@ja ; + "44210" ; + a . + + + ; + "大分県宇佐市"@ja ; + "44211" ; + a . + + + ; + "大分県豊後大野市"@ja ; + "44212" ; + a . + + + ; + "大分県由布市"@ja ; + "44213" ; + a . + + + ; + "大分県国東市"@ja ; + "44214" ; + a . + + + ; + "大分県姫島村"@ja ; + "44322" ; + a . + + + ; + "大分県日出町"@ja ; + "44341" ; + a . + + + ; + "大分県九重町"@ja ; + "44461" ; + a . + + + ; + "大分県玖珠町"@ja ; + "44462" ; + a . + + + ; + "宮崎県宮崎市"@ja ; + "45201" ; + a . + + + ; + "宮崎県都城市"@ja ; + "45202" ; + a . + + + ; + "宮崎県延岡市"@ja ; + "45203" ; + a . + + + ; + "宮崎県日南市"@ja ; + "45204" ; + a . + + + ; + "宮崎県小林市"@ja ; + "45205" ; + a . + + + ; + "宮崎県日向市"@ja ; + "45206" ; + a . + + + ; + "宮崎県串間市"@ja ; + "45207" ; + a . + + + ; + "宮崎県西都市"@ja ; + "45208" ; + a . + + + ; + "宮崎県えびの市"@ja ; + "45209" ; + a . + + + ; + "宮崎県三股町"@ja ; + "45341" ; + a . + + + ; + "宮崎県高原町"@ja ; + "45361" ; + a . + + + ; + "宮崎県国富町"@ja ; + "45382" ; + a . + + + ; + "宮崎県綾町"@ja ; + "45383" ; + a . + + + ; + "宮崎県高鍋町"@ja ; + "45401" ; + a . + + + ; + "宮崎県新富町"@ja ; + "45402" ; + a . + + + ; + "宮崎県西米良村"@ja ; + "45403" ; + a . + + + ; + "宮崎県木城町"@ja ; + "45404" ; + a . + + + ; + "宮崎県川南町"@ja ; + "45405" ; + a . + + + ; + "宮崎県都農町"@ja ; + "45406" ; + a . + + + ; + "宮崎県門川町"@ja ; + "45421" ; + a . + + + ; + "宮崎県諸塚村"@ja ; + "45429" ; + a . + + + ; + "宮崎県椎葉村"@ja ; + "45430" ; + a . + + + ; + "宮崎県美郷町"@ja ; + "45431" ; + a . + + + ; + "宮崎県高千穂町"@ja ; + "45441" ; + a . + + + ; + "宮崎県日之影町"@ja ; + "45442" ; + a . + + + ; + "宮崎県五ヶ瀬町"@ja ; + "45443" ; + a . + + + ; + "鹿児島県鹿児島市"@ja ; + "46201" ; + a . + + + ; + "鹿児島県鹿屋市"@ja ; + "46203" ; + a . + + + ; + "鹿児島県枕崎市"@ja ; + "46204" ; + a . + + + ; + "鹿児島県阿久根市"@ja ; + "46206" ; + a . + + + ; + "鹿児島県出水市"@ja ; + "46208" ; + a . + + + ; + "鹿児島県指宿市"@ja ; + "46210" ; + a . + + + ; + "鹿児島県西之表市"@ja ; + "46213" ; + a . + + + ; + "鹿児島県垂水市"@ja ; + "46214" ; + a . + + + ; + "鹿児島県薩摩川内市"@ja ; + "46215" ; + a . + + + ; + "鹿児島県日置市"@ja ; + "46216" ; + a . + + + ; + "鹿児島県曽於市"@ja ; + "46217" ; + a . + + + ; + "鹿児島県霧島市"@ja ; + "46218" ; + a . + + + ; + "鹿児島県いちき串木野市"@ja ; + "46219" ; + a . + + + ; + "鹿児島県南さつま市"@ja ; + "46220" ; + a . + + + ; + "鹿児島県志布志市"@ja ; + "46221" ; + a . + + + ; + "鹿児島県奄美市"@ja ; + "46222" ; + a . + + + ; + "鹿児島県南九州市"@ja ; + "46223" ; + a . + + + ; + "鹿児島県伊佐市"@ja ; + "46224" ; + a . + + + ; + "鹿児島県姶良市"@ja ; + "46225" ; + a . + + + ; + "鹿児島県三島村"@ja ; + "46303" ; + a . + + + ; + "鹿児島県十島村"@ja ; + "46304" ; + a . + + + ; + "鹿児島県さつま町"@ja ; + "46392" ; + a . + + + ; + "鹿児島県長島町"@ja ; + "46404" ; + a . + + + ; + "鹿児島県湧水町"@ja ; + "46452" ; + a . + + + ; + "鹿児島県大崎町"@ja ; + "46468" ; + a . + + + ; + "鹿児島県東串良町"@ja ; + "46482" ; + a . + + + ; + "鹿児島県錦江町"@ja ; + "46490" ; + a . + + + ; + "鹿児島県南大隅町"@ja ; + "46491" ; + a . + + + ; + "鹿児島県肝付町"@ja ; + "46492" ; + a . + + + ; + "鹿児島県中種子町"@ja ; + "46501" ; + a . + + + ; + "鹿児島県南種子町"@ja ; + "46502" ; + a . + + + ; + "鹿児島県屋久島町"@ja ; + "46505" ; + a . + + + ; + "鹿児島県大和村"@ja ; + "46523" ; + a . + + + ; + "鹿児島県宇検村"@ja ; + "46524" ; + a . + + + ; + "鹿児島県瀬戸内町"@ja ; + "46525" ; + a . + + + ; + "鹿児島県龍郷町"@ja ; + "46527" ; + a . + + + ; + "鹿児島県喜界町"@ja ; + "46529" ; + a . + + + ; + "鹿児島県徳之島町"@ja ; + "46530" ; + a . + + + ; + "鹿児島県天城町"@ja ; + "46531" ; + a . + + + ; + "鹿児島県伊仙町"@ja ; + "46532" ; + a . + + + ; + "鹿児島県和泊町"@ja ; + "46533" ; + a . + + + ; + "鹿児島県知名町"@ja ; + "46534" ; + a . + + + ; + "鹿児島県与論町"@ja ; + "46535" ; + a . + + + ; + "沖縄県那覇市"@ja ; + "47201" ; + a . + + + ; + "沖縄県宜野湾市"@ja ; + "47205" ; + a . + + + ; + "沖縄県石垣市"@ja ; + "47207" ; + a . + + + ; + "沖縄県浦添市"@ja ; + "47208" ; + a . + + + ; + "沖縄県名護市"@ja ; + "47209" ; + a . + + + ; + "沖縄県糸満市"@ja ; + "47210" ; + a . + + + ; + "沖縄県沖縄市"@ja ; + "47211" ; + a . + + + ; + "沖縄県豊見城市"@ja ; + "47212" ; + a . + + + ; + "沖縄県うるま市"@ja ; + "47213" ; + a . + + + ; + "沖縄県宮古島市"@ja ; + "47214" ; + a . + + + ; + "沖縄県南城市"@ja ; + "47215" ; + a . + + + ; + "沖縄県国頭村"@ja ; + "47301" ; + a . + + + ; + "沖縄県大宜味村"@ja ; + "47302" ; + a . + + + ; + "沖縄県東村"@ja ; + "47303" ; + a . + + + ; + "沖縄県今帰仁村"@ja ; + "47306" ; + a . + + + ; + "沖縄県本部町"@ja ; + "47308" ; + a . + + + ; + "沖縄県恩納村"@ja ; + "47311" ; + a . + + + ; + "沖縄県宜野座村"@ja ; + "47313" ; + a . + + + ; + "沖縄県金武町"@ja ; + "47314" ; + a . + + + ; + "沖縄県伊江村"@ja ; + "47315" ; + a . + + + ; + "沖縄県読谷村"@ja ; + "47324" ; + a . + + + ; + "沖縄県嘉手納町"@ja ; + "47325" ; + a . + + + ; + "沖縄県北谷町"@ja ; + "47326" ; + a . + + + ; + "沖縄県北中城村"@ja ; + "47327" ; + a . + + + ; + "沖縄県中城村"@ja ; + "47328" ; + a . + + + ; + "沖縄県西原町"@ja ; + "47329" ; + a . + + + ; + "沖縄県与那原町"@ja ; + "47348" ; + a . + + + ; + "沖縄県南風原町"@ja ; + "47350" ; + a . + + + ; + "沖縄県渡嘉敷村"@ja ; + "47353" ; + a . + + + ; + "沖縄県座間味村"@ja ; + "47354" ; + a . + + + ; + "沖縄県粟国村"@ja ; + "47355" ; + a . + + + ; + "沖縄県渡名喜村"@ja ; + "47356" ; + a . + + + ; + "沖縄県南大東村"@ja ; + "47357" ; + a . + + + ; + "沖縄県北大東村"@ja ; + "47358" ; + a . + + + ; + "沖縄県伊平屋村"@ja ; + "47359" ; + a . + + + ; + "沖縄県伊是名村"@ja ; + "47360" ; + a . + + + ; + "沖縄県久米島町"@ja ; + "47361" ; + a . + + + ; + "沖縄県八重瀬町"@ja ; + "47362" ; + a . + + + ; + "沖縄県多良間村"@ja ; + "47375" ; + a . + + + ; + "沖縄県竹富町"@ja ; + "47381" ; + a . + + + ; + "沖縄県与那国町"@ja ; + "47382" ; + a . + + + ; + [ + "法人番号公表サイトのリソース定義書記載の法人種別" ; + a + ] ; + ; + a . + + + ; + "国の機関" ; + "101" ; + a . + + + ; + "地方公共団体" ; + "201" ; + a . + + + ; + "株式会社" ; + "301" ; + a . + + + ; + "有限会社" ; + "302" ; + a . + + + ; + "合名会社" ; + "303" ; + a . + + + ; + "合資会社" ; + "304" ; + a . + + + ; + "合同会社" ; + "305" ; + a . + + + ; + "その他の設立登記法人" ; + "399" ; + a . + + + ; + "外国会社等" ; + "401" ; + a . + + + ; + "その他" ; + "499" ; + a . + + + [ + "法人番号" ; + a + ] ; + ; + a . + diff --git a/gbizinfo_lod/__init__.py b/gbizinfo_lod/__init__.py new file mode 100644 index 0000000..fec5885 --- /dev/null +++ b/gbizinfo_lod/__init__.py @@ -0,0 +1,3 @@ +import importlib.metadata + +__version__ = importlib.metadata.version("gbizinfo_lod") diff --git a/gbizinfo_lod/client.py b/gbizinfo_lod/client.py new file mode 100644 index 0000000..e3cce1b --- /dev/null +++ b/gbizinfo_lod/client.py @@ -0,0 +1,50 @@ +import csv + +import requests + + +class GbizinfoClient: + DOWNLOAD_ENDPOINT = "https://info.gbiz.go.jp/hojin/Download" + CSV_ENDPOINT = "https://info.gbiz.go.jp/hojin/OutputCSV" + CSV_MAX_ROWS = 1000 + + def __init__(self): + self.session = requests.Session() + + def download_csv( + self, downfile: int, downtype: str = "zip", downenc: str = "UTF-8" + ) -> requests.Response: + data = { + "downfile": downfile, + "downtype": downtype, + "downenc": downenc, + } + res = self.session.post(self.DOWNLOAD_ENDPOINT, data=data, stream=True) + res.raise_for_status() + return res + + def download_csv_to_file( + self, + file_path: str, + downfile: int, + downtype: str = "zip", + downenc: str = "UTF-8", + ) -> None: + res = self.download_csv(downfile, downtype, downenc) + with open(file_path, "wb") as f: + for c in res.iter_content(chunk_size=4 * 1024): + f.write(c) + + def output_csv( + self, hojin_bango_list: list[str], csvdata: str = "00", output: str = "U" + ) -> list[dict[str, str]]: + data = { + "csvdata": csvdata, + "output": output, + "hojinBangoList": ",".join(hojin_bango_list), + } + res = self.session.post(self.CSV_ENDPOINT, data=data, stream=True) + res.raise_for_status() + lines = res.iter_lines(decode_unicode=True) + next(lines) + return [row for row in csv.DictReader(lines)] diff --git a/gbizinfo_lod/command.py b/gbizinfo_lod/command.py new file mode 100644 index 0000000..1df04d4 --- /dev/null +++ b/gbizinfo_lod/command.py @@ -0,0 +1,183 @@ +import csv +import os +import shutil +import time +from typing import Iterator + +import click + +from . import __version__ +from .client import GbizinfoClient +from .mappers import * +from .mappers.todokede import GbizInfoTodokedeMapper + + +@click.group() +def cli(): + pass + + +@cli.command() +def version(): + click.echo(f"gbizinfo_lod/{__version__}") + + +@cli.command(help="Download CSV files") +@click.argument( + "work_dir", type=click.Path(exists=True, file_okay=False, writable=True) +) +@click.option("--sleep", type=int, default=3, help="Sleep time in seconds") +def download(work_dir: str, sleep: int): + client = GbizinfoClient() + + csv_files = { + # CSV形式(法人活動情報語彙対応版) + 0: "TodokedeNinteijoho", + 1: "Hyoshojoho", + 2: "Hojokinjoho", + 3: "Chotatsujoho", + 4: "Tokkyojoho", + 5: "Zaimujoho", + 6: "Shokubajoho", + # CSV形式 + 7: "Kihonjoho", + } + + for file_id, name in csv_files.items(): + zip_file_name = f"{name}_UTF-8.zip" + csv_file_name = f"{name}_UTF-8.csv" + zip_file_path = os.path.join(work_dir, zip_file_name) + csv_file_path = os.path.join(work_dir, csv_file_name) + + click.echo(f"Downloading {zip_file_name}") + client.download_csv_to_file(zip_file_path, file_id) + click.echo(f"Unpacking {zip_file_name}") + shutil.unpack_archive(zip_file_path, work_dir) + os.remove(zip_file_path) + + if not os.path.exists(csv_file_path): + raise click.ClickException(f"{csv_file_path} not found") + + kihonjoho_csv_file = os.path.join(work_dir, "Kihonjoho_UTF-8.csv") + kihonjoho_imi_file = os.path.join(work_dir, "Kihonjoho_IMI_UTF-8.csv") + + if not os.path.exists(kihonjoho_imi_file): + click.echo("Retrieving Kihonjoho (IMI version)") + with open(kihonjoho_imi_file, "w", encoding="utf-8") as f: + writer = None + for row in get_kihonjoho_imi(kihonjoho_csv_file, client): + if writer is None: + writer = csv.DictWriter(f, fieldnames=row.keys()) + writer.writeheader() + writer.writerow(row) + + +def get_kihonjoho_imi( + csv_file: str, client: GbizinfoClient, sleep: int = 3 +) -> Iterator[dict]: + with open(csv_file, "r", encoding="utf-8-sig") as f: + reader = csv.DictReader(f) + + count = 0 + chunk = [] + for row in reader: + if not row["法人名"]: + click.echo(f"skip: {row['法人番号']}", err=True) + continue + + chunk.append(row["法人番号"]) + if len(chunk) == client.CSV_MAX_ROWS: + count += len(chunk) + click.echo(f"{count} ...") + + for r in client.output_csv(chunk): + yield r + chunk.clear() + time.sleep(sleep) + + if len(chunk) > 0: + for r in client.output_csv(chunk): + yield r + + count += len(chunk) + click.echo(f"{count}") + + +MAPPER_TYPES = [ + "hojin", + "hojyokin", + "chotatsu", + "hyosho", + "todokede", + "tokkyo", + "shokuba", + "zaimu", +] + + +@cli.command(help="Convert CSV files to RDF") +@click.argument("work_dir") +@click.option( + "--mapper", "-m", "mappers", multiple=True, type=click.Choice(MAPPER_TYPES) +) +@click.option("--processes", "-p", type=int, default=-1) +@click.option( + "--output-dir", "-o", type=click.Path(exists=True, file_okay=False, writable=True) +) +def convert(work_dir: str, mappers: list[str], processes: int, output_dir: str): + if not mappers: + mappers = MAPPER_TYPES + if not output_dir: + output_dir = work_dir + + for m in mappers: + match m: + case "hojin": + mapper = GbizInfoHojinMapper( + os.path.join(work_dir, "Kihonjoho_IMI_UTF-8.csv") + ) + case "hojyokin": + mapper = GbizInfoHojyokinMapper( + os.path.join(work_dir, "Hojokinjoho_UTF-8.csv") + ) + case "chotatsu": + mapper = GbizInfoChotatsuMapper( + os.path.join(work_dir, "Chotatsujoho_UTF-8.csv") + ) + case "hyosho": + mapper = GbizInfoHyoshoMapper( + os.path.join(work_dir, "Hyoshojoho_UTF-8.csv") + ) + case "todokede": + mapper = GbizInfoTodokedeMapper( + os.path.join(work_dir, "TodokedeNinteijoho_UTF-8.csv") + ) + case "tokkyo": + mapper = GbizInfoTokkyoMapper( + os.path.join(work_dir, "Tokkyojoho_UTF-8.csv") + ) + case "shokuba": + mapper = GbizInfoShokubaMapper( + os.path.join(work_dir, "Shokubajoho_UTF-8.csv") + ) + case "zaimu": + mapper = GbizInfoZaimuMapper( + os.path.join(work_dir, "Zaimujoho_UTF-8.csv") + ) + case _: + raise NotImplementedError + + output_file = os.path.join(output_dir, f"{m}.nt") + click.echo(f"output: {output_file}") + click.echo(f"Running {m} mapper ...") + with open(output_file, "w") as f: + mapper.run(n_jobs=processes, output=f) + + +@cli.command(help="Fetch CSV data from OutputCSV endpoint") +@click.argument("hojin_bango") +def output_csv(hojin_bango: str): + client = GbizinfoClient() + res = client.output_csv([hojin_bango]) + for row in res: + click.echo(row) diff --git a/gbizinfo_lod/mappers/__init__.py b/gbizinfo_lod/mappers/__init__.py new file mode 100644 index 0000000..c6b66b9 --- /dev/null +++ b/gbizinfo_lod/mappers/__init__.py @@ -0,0 +1,132 @@ +import csv +import sys +from abc import ABC, abstractmethod +from typing import IO, Iterator, Tuple, Union + +from joblib import Parallel, delayed +from rdflib import BNode +from rdflib import Literal as LiteralRdflib +from rdflib.graph import _ObjectType, _PredicateType, _SubjectType, _TripleType +from rdflib.namespace import RDF +from rdflib.plugins.serializers.nt import _nt_row + +_TripleMapType = Tuple[ + _SubjectType, _PredicateType, Union[str, _ObjectType, "BlankPredicateObjectMap"] +] +_PredicateObjectType = Tuple[ + _PredicateType, Union[str, _ObjectType, "BlankPredicateObjectMap"] +] + + +class Literal: + def __new__(cls, value, *args, **kwargs) -> LiteralRdflib | None: + if value is None: + return None + return LiteralRdflib(value, *args, **kwargs) + + +class BlankPredicateObjectMap: + def __init__(self, predicate_objects: list[_PredicateObjectType]): + self.subject = BNode() + self.predicate_objects = predicate_objects + + +def bpo(predicate_objects: list[_PredicateObjectType]) -> BlankPredicateObjectMap: + return BlankPredicateObjectMap(predicate_objects) + + +def normalize_triple(triple: _TripleType) -> _TripleMapType | None: + if triple[2] is None: + return None + if isinstance(triple[2], Literal) and triple[2] is None: + return None + if type(triple[2]) is str: + triple = (triple[0], triple[1], Literal(triple[2])) + return triple + + +def flatten_triple_map(triple_map: _TripleMapType) -> list[_TripleType]: + triples = [] + + if isinstance(triple_map[2], BlankPredicateObjectMap): + bnode = triple_map[2].subject + b_triples = [] + for po in triple_map[2].predicate_objects: + b_triples.extend(flatten_triple_map((bnode, po[0], po[1]))) + + # Ignore statements if rdf:type only + if len([t for t in b_triples if t[1] != RDF.type]) > 0: + triples.append((triple_map[0], triple_map[1], bnode)) + triples.extend(b_triples) + else: + t = normalize_triple(triple_map) + if t: + triples.append(t) + + return triples + + +def serialize_triple(triple: _TripleMapType) -> str: + return _nt_row(triple) + + +class CSV2RDFMapper(ABC): + def __init__(self, csv_file: str): + self.file = csv_file + + def iterator(self) -> Iterator[dict[str, str]]: + with open(self.file, encoding="utf_8_sig") as f: + reader = csv.DictReader(f) + for row in reader: + yield row + + def run(self, n_jobs: int = -1, output: IO[str] = sys.stdout): + if n_jobs == 1: + for row in self.iterator(): + for triple_map in self.map_to_triples(self.preprocess(row)): + for triple in flatten_triple_map(triple_map): + output.write(serialize_triple(triple)) + else: + + def job(row: dict[str, str]) -> str: + return "".join( + [ + serialize_triple(triple) + for triple_map in self.map_to_triples(self.preprocess(row)) + for triple in flatten_triple_map(triple_map) + ] + ) + + res = Parallel(n_jobs=n_jobs, return_as="generator_unordered", verbose=1)( + delayed(job)(row) for row in self.iterator() + ) + for lines in res: + output.write(lines) + + @staticmethod + def preprocess(row: dict[str, str]) -> dict[str, str | None]: + return {key: val if val != "" else None for key, val in row.items()} + + @staticmethod + @abstractmethod + def map_to_triples(row: dict[str, str]) -> list[_TripleMapType]: + raise NotImplementedError + + +from .chotatsu import GbizInfoChotatsuMapper +from .hojin import GbizInfoHojinMapper +from .hojyokin import GbizInfoHojyokinMapper +from .hyosho import GbizInfoHyoshoMapper +from .shokuba import GbizInfoShokubaMapper +from .tokkyo import GbizInfoTokkyoMapper +from .zaimu import GbizInfoZaimuMapper + +__all__ = [ + "GbizInfoHojinMapper", + "GbizInfoHojyokinMapper", + "GbizInfoChotatsuMapper", + "GbizInfoHyoshoMapper", + "GbizInfoTokkyoMapper", + "GbizInfoShokubaMapper", + "GbizInfoZaimuMapper", +] diff --git a/gbizinfo_lod/mappers/_katsudo.py b/gbizinfo_lod/mappers/_katsudo.py new file mode 100644 index 0000000..d50254d --- /dev/null +++ b/gbizinfo_lod/mappers/_katsudo.py @@ -0,0 +1,434 @@ +from ..namespace import * +from . import CSV2RDFMapper, Literal, _TripleMapType, bpo + + +class GbizInfoKatsudoMapper(CSV2RDFMapper): + """法人活動情報 共通""" + + @staticmethod + def map_to_triples(row: dict[str, str]) -> list[_TripleMapType]: + s = HJ_DATA[row["ID-識別値"]] + ss = HJ_EXT[f"{row['ID-識別値']}_{row['キー情報']}"] + + triples = [ + (s, HJ.法人活動情報, ss), + # 1 + ( + ss, + IC.ID, + bpo( + [ + (RDF.type, IC.ID型), + (IC.体系, IC_ID.corporateNumber), + (IC.識別値, row["ID-識別値"]), + ] + ), + ), + # 2, 3, 4 + ( + ss, + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + (IC.種別, row["名称-種別"]), + (IC.表記, row["名称-表記"]), + (IC.カナ表記, row["名称-カナ表記"]), + ] + ), + ), + # 5, 6, 7 + ( + ss, + IC.連絡先, + bpo( + [ + (RDF.type, IC.連絡先型), + (IC.種別, row["連絡先-種別"]), + (IC.電話番号, row["連絡先-電話番号"]), + (IC.FAX番号, row["連絡先-FAX番号"]), + ] + ), + ), + # 8, 9 + ( + ss, + IC.関連組織, + bpo( + [ + (RDF.type, IC.組織関連型), + (IC.役割, row["関連組織-役割"]), + ( + IC.組織, + bpo( + [ + (RDF.type, IC.組織型), + ( + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + (IC.表記, row["関連組織-名称"]), + ] + ), + ), + ] + ), + ), + ] + ), + ), + # 10, 11, 12, 13, 14, 15 + ( + ss, + IC.住所, + bpo( + [ + (RDF.type, HJ.住所型), + (IC.種別, row["住所-種別"]), + (IC.表記, row["住所-表記"]), + (IC.郵便番号, row["住所-郵便番号"]), + (IC.都道府県, row["住所-都道府県"]), + (IC.市区町村, row["住所-市区町村"]), + (HJ.町名番地等, row["住所-町名番地等"]), + ] + ), + ), + # 16, 17, 18 + ( + ss, + IC.代表者, + bpo( + [ + (RDF.type, IC.構成員型), + (IC.役割, row["代表者-役割"]), + ( + IC.構成員, + bpo( + [ + (RDF.type, IC.構成員型), + ( + IC.氏名, + bpo( + [ + (RDF.type, IC.氏名型), + (IC.種別, row["代表者-表示用種別"]), + (IC.姓名, row["代表者-表示用氏名"]), + ] + ), + ), + ( + IC.氏名, + bpo( + [ + (RDF.type, IC.氏名型), + (IC.種別, row["代表者-検索用種別"]), + (IC.姓名, row["代表者-検索用氏名"]), + ] + ), + ), + ] + ), + ), + ] + ), + ), + # 19 + ( + ss, + IC.設立日, + bpo( + [ + (RDF.type, IC.日付型), + (IC.標準型日付, Literal(row["設立日"], datatype=XSD.date)), + ] + ), + ), + # 20, 21, 22 + ( + ss, + IC.資本金, + bpo( + [ + (RDF.type, IC.金額型), + (IC.数値, Literal(row["資本金-数値"], datatype=XSD.decimal)), + (IC.通貨, row["資本金-通貨"]), + ( + IC.通貨コード, + Literal( + row["資本金-通貨コード"], + datatype=ISO4217.ISO3AlphaCurrencyCodeContentType, + ), + ), + ] + ), + ), + # 23 + ( + ss, + IC.関連人員, + bpo( + [ + (RDF.type, IC.人数型), + ( + IC.人数, + Literal( + row["関連人員-人数"], datatype=XSD.nonNegativeInteger + ), + ), + ] + ), + ), + # 24 + ( + ss, + HJ.更新日時, + bpo( + [ + (RDF.type, IC.日時型), + ( + IC.標準型日時, + Literal( + row["更新日時"], + datatype=XSD.dateTime, + ), + ), + ] + ), + ), + # 25, 26, 27, 28 + ( + ss, + HJ.公表組織, + bpo( + [ + (RDF.type, IC.組織型), + ( + IC.ID, + bpo( + [ + (RDF.type, IC.ID型), + ( + IC.体系, + bpo( + [ + (RDF.type, IC.ID体系型), + ( + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + ( + IC.表記, + row["公表組織-ID名称"], + ), + ] + ), + ), + ( + IC.発行者, + bpo( + [ + (RDF.type, IC.組織型), + ( + IC.名称, + bpo( + [ + ( + RDF.type, + IC.名称型, + ), + ( + IC.表記, + row[ + "公表組織-ID発行者" + ], + ), + ] + ), + ), + ] + ), + ), + ] + ), + ), + (IC.識別値, row["公表組織-ID識別値"]), + ] + ), + ), + ( + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + (IC.表記, row["公表組織-名称表記"]), + ] + ), + ), + ] + ), + ), + # 29 + ( + ss, + HJ.システム名, + bpo([(RDF.type, IC.名称型), (IC.表記, row["システム名"])]), + ), + # 30 + (ss, HJ.キー情報, row["キー情報"]), + # 31 + (ss, HJ.業種コード, row["業種コード"]), + # 32 + (ss, HJ.事業内容, row["事業内容"]), + # 33 + ( + ss, + HJ.営業エリア, + bpo( + [ + ( + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + (IC.表記, row["営業エリア-表記"]), + ] + ), + ) + ] + ), + ), + # 34, 35, 36 + ( + ss, + HJ.決算情報, + bpo( + [ + (RDF.type, IC.金額型), + (IC.数値, Literal(row["決算情報-金額"], datatype=XSD.decimal)), + (IC.通貨, row["決算情報-通貨"]), + ( + IC.通貨コード, + Literal( + row["決算情報-通貨コード"], + datatype=ISO4217.ISO3AlphaCurrencyCodeContentType, + ), + ), + ] + ), + ), + # 37 + ( + ss, + HJ.認定日, + bpo( + [ + (RDF.type, IC.日付型), + ( + IC.標準型日付, + Literal(row["法人活動-認定日"], datatype=XSD.date), + ), + ] + ), + ), + # 38 + ( + ss, + HJ.活動名称, + bpo([(RDF.type, IC.名称型), (IC.表記, row["法人活動-活動名称"])]), + ), + # 39 + (ss, HJ.部門, row["法人活動-部門"]), + # 40, 41 + ( + ss, + HJ.区分, + bpo( + [ + (IC.種別, row["法人活動-区分-種別"]), + (IC.表記, row["法人活動-区分-内容"]), + ] + ), + ), + # 42 + (ss, HJ.対象, row["法人活動-対象"]), + # 43 + ( + ss, + IC.金額, + bpo( + [ + (RDF.type, IC.金額型), + (IC.数値, Literal(row["法人活動-金額"], datatype=XSD.decimal)), + ] + ), + ), + # 44 + ( + ss, + HJ.状況, + bpo( + [ + (RDF.type, IC.状況型), + ( + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + (IC.表記, row["法人活動-状況名称"]), + ] + ), + ), + ] + ), + ), + # 45, 46 + ( + ss, + IC.期間, + bpo( + [ + (RDF.type, IC.期間型), + ( + IC.開始日時, + bpo( + [ + (RDF.type, IC.日時型), + ( + IC.標準型日付, + Literal( + row["法人活動-期間開始日時"], + datatype=XSD.dateTime, + ), + ), + ] + ), + ), + ( + IC.終了日時, + bpo( + [ + (RDF.type, IC.日時型), + ( + IC.標準型日付, + Literal( + row["法人活動-期間終了日時"], + datatype=XSD.dateTime, + ), + ), + ] + ), + ), + ] + ), + ), + # 47 + (ss, HJ.備考, bpo([(IC.種別, row["備考-種別"])])), + # 48 + (ss, HJ.資格, bpo([(IC.種別, row["資格-表記"])])), + ] + return triples + + +__all__ = ["GbizInfoKatsudoMapper"] diff --git a/gbizinfo_lod/mappers/chotatsu.py b/gbizinfo_lod/mappers/chotatsu.py new file mode 100644 index 0000000..48d2c65 --- /dev/null +++ b/gbizinfo_lod/mappers/chotatsu.py @@ -0,0 +1,24 @@ +from rdflib import Literal, URIRef + +from ..namespace import * +from . import _TripleMapType, bpo +from ._katsudo import GbizInfoKatsudoMapper + + +class GbizInfoChotatsuMapper(GbizInfoKatsudoMapper): + """調達情報""" + + @staticmethod + def map_to_triples(row: dict[str, str]) -> list[_TripleMapType]: + ss = HJ_EXT[f"{row['ID-識別値']}_{row['キー情報']}"] + + triples = GbizInfoKatsudoMapper.map_to_triples(row) + triples.extend( + [ + (ss, RDF.type, HJ.調達型), + ] + ) + return triples + + +__all__ = ["GbizInfoChotatsuMapper"] diff --git a/gbizinfo_lod/mappers/hojin.py b/gbizinfo_lod/mappers/hojin.py new file mode 100644 index 0000000..6fed451 --- /dev/null +++ b/gbizinfo_lod/mappers/hojin.py @@ -0,0 +1,288 @@ +from rdflib import Literal, URIRef + +from ..namespace import * +from . import CSV2RDFMapper, _TripleMapType, bpo + + +class GbizInfoHojinMapper(CSV2RDFMapper): + """法人情報・法人基本情報""" + + @staticmethod + def map_to_triples(row: dict[str, str]) -> list[_TripleMapType]: + s = HJ_DATA[row["ID-識別値"]] + ss = HJ_BASIC[row["ID-識別値"]] + + triples = [ + (s, HJ.法人基本情報, ss), + (s, RDF.type, HJ.法人情報型), + (ss, RDF.type, HJ.法人基本情報型), + # 1 + ( + ss, + IC.ID, + bpo( + [ + (RDF.type, IC.ID型), + (IC.体系, IC_ID.corporateNumber), + (IC.識別値, row["ID-識別値"]), + ] + ), + ), + # 2, 3 + ( + ss, + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + (IC.種別, row["名称[日本語表記]-種別"]), + (IC.表記, row["名称[日本語表記]-表記"]), + (IC.カナ表記, row["名称[日本語表記]-カナ表記"]), + ] + ), + ), + # 2, 3 + ( + ss, + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + (IC.種別, row["名称[英語表記]-種別"]), + (IC.表記, row["名称[英語表記]-表記"]), + (IC.カナ表記, row["名称[英語表記]-カナ表記"]), + ] + ), + ), + # 4, 5 + ( + ss, + IC.活動状況, + bpo( + [ + (RDF.type, IC.状況型), + ( + IC.発生日, + bpo( + [ + (RDF.type, IC.日時型), + ( + IC.標準型日時, + Literal( + row["活動状況-発生日"], + datatype=XSD.dateTime, + ), + ), + ] + ), + ), + (IC.説明, row["活動状況-説明"]), + ] + ), + ), + # 6, 7, 8, 9, 10, 11, 12, 13 + ( + ss, + IC.住所, + bpo( + [ + (RDF.type, HJ.住所型), + (IC.種別, row["住所[日本語表記]-種別"]), + (IC.表記, row["住所[日本語表記]-表記"]), + (IC.郵便番号, row["住所[日本語表記]-郵便番号"]), + (IC.都道府県, row["住所[日本語表記]-都道府県"]), + ( + IC.都道府県コード, + URIRef( + f"http://imi.go.jp/ns/code_id/code/jisx0401#{row['住所[日本語表記]-都道府県コード']}" + ), + ), + (IC.市区町村, row["住所[日本語表記]-市区町村"]), + ( + IC.市区町村コード, + URIRef( + f"http://imi.go.jp/ns/code_id/code/jisx0402#{row['住所[日本語表記]-市区町村コード']}" + ), + ), + (HJ.町名番地等, row["住所[日本語表記]-町名番地等"]), + ] + ), + ), + # 6, 7, 8, 9, 10, 11, 12, 13, 14 + ( + ss, + IC.住所, + bpo( + [ + (RDF.type, HJ.住所型), + (IC.種別, row["住所[英語表記]-種別"]), + (IC.表記, row["住所[英語表記]-表記"]), + (IC.郵便番号, row["住所[英語表記]-郵便番号"]), + (IC.都道府県, row["住所[英語表記]-都道府県"]), + ( + IC.都道府県コード, + URIRef( + f"http://imi.go.jp/ns/code_id/code/jisx0401#{row['住所[英語表記]-都道府県コード']}" + ), + ), + (IC.市区町村, row["住所[英語表記]-市区町村"]), + ( + IC.市区町村コード, + URIRef( + f"http://imi.go.jp/ns/code_id/code/jisx0402#{row['住所[英語表記]-市区町村コード']}" + ), + ), + (HJ.町名番地等, row["住所[英語表記]-町名番地等"]), + ( + HJ.市区町村町名番地等, + row["住所[英語表記]-市区町村町名番地以下"], + ), + ] + ), + ), + # 15 + ( + ss, + IC.組織種別, + URIRef(f"http://imi.go.jp/ns/code_id/code/kind#{row['組織種別']}"), + ), + # 16 + ( + ss, + HJ.更新日時, + bpo( + [ + (RDF.type, IC.日時型), + ( + IC.標準型日時, + Literal( + ( + f"{row["更新日時"]}T00:00:00" + if row["更新日時"] + else None + ), + datatype=XSD.dateTime, + ), + ), + ] + ), + ), + # 17, 18, 19, 20 + ( + ss, + HJ.公表組織, + bpo( + [ + (RDF.type, IC.組織型), + ( + IC.ID, + bpo( + [ + (RDF.type, IC.ID型), + ( + IC.体系, + bpo( + [ + (RDF.type, IC.ID体系型), + ( + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + ( + IC.表記, + row["公表組織-ID名称"], + ), + ] + ), + ), + ( + IC.発行者, + bpo( + [ + (RDF.type, IC.実体型), + ( + IC.名称, + bpo( + [ + ( + RDF.type, + IC.名称型, + ), + ( + IC.表記, + row[ + "公表組織-ID発行者" + ], + ), + ] + ), + ), + ] + ), + ), + ] + ), + ), + (IC.識別値, row["公表組織-ID識別値"]), + ] + ), + ), + ( + IC.名称, + bpo( + [(RDF.type, IC.名称型), (IC.表記, row["公表組織-名称"])] + ), + ), + ] + ), + ), + # 21, 22 + ( + ss, + HJ.区分, + bpo( + [ + (IC.種別, row["区分-処理種別"]), + (IC.表記, row["区分-処理表記"]), + ] + ), + ), + # 21, 22 + ( + ss, + HJ.区分, + bpo( + [ + (IC.種別, row["区分-訂正種別"]), + (IC.表記, row["区分-訂正表記"]), + ] + ), + ), + # 21, 22 + ( + ss, + HJ.区分, + bpo( + [ + (IC.種別, row["区分-最新種別"]), + (IC.表記, row["区分-最新表記"]), + ] + ), + ), + # 21, 22 + ( + ss, + HJ.区分, + bpo( + [ + (IC.種別, row["区分-過去種別"]), + (IC.表記, row["区分-過去表記"]), + ] + ), + ), + ] + return triples + + +__all__ = ["GbizInfoHojinMapper"] diff --git a/gbizinfo_lod/mappers/hojyokin.py b/gbizinfo_lod/mappers/hojyokin.py new file mode 100644 index 0000000..37b8a1e --- /dev/null +++ b/gbizinfo_lod/mappers/hojyokin.py @@ -0,0 +1,54 @@ +from rdflib import Literal, URIRef + +from ..namespace import * +from . import _TripleMapType, bpo +from ._katsudo import GbizInfoKatsudoMapper + + +class GbizInfoHojyokinMapper(GbizInfoKatsudoMapper): + """補助金情報""" + + @staticmethod + def map_to_triples(row: dict[str, str]) -> list[_TripleMapType]: + ss = HJ_EXT[f"{row['ID-識別値']}_{row['キー情報']}"] + + triples = GbizInfoKatsudoMapper.map_to_triples(row) + triples.extend( + [ + (ss, RDF.type, HJ.補助金型), + # 49 + ( + ss, + HJ.採択日, + bpo( + [ + (RDF.type, IC.日付型), + ( + IC.標準型日付, + Literal(row["補助金-採択日"], datatype=XSD.date), + ), + ] + ), + ), + # 50 + ( + ss, + HJ.交付決定日, + bpo( + [ + (RDF.type, IC.日付型), + ( + IC.標準型日付, + Literal(row["補助金-交付決定日"], datatype=XSD.date), + ), + ] + ), + ), + # 51 + (ss, HJ.補助金財源, row["補助金-財源"]), + ] + ) + return triples + + +__all__ = ["GbizInfoHojyokinMapper"] diff --git a/gbizinfo_lod/mappers/hyosho.py b/gbizinfo_lod/mappers/hyosho.py new file mode 100644 index 0000000..1235cdf --- /dev/null +++ b/gbizinfo_lod/mappers/hyosho.py @@ -0,0 +1,24 @@ +from rdflib import Literal, URIRef + +from ..namespace import * +from . import _TripleMapType, bpo +from ._katsudo import GbizInfoKatsudoMapper + + +class GbizInfoHyoshoMapper(GbizInfoKatsudoMapper): + """表彰情報""" + + @staticmethod + def map_to_triples(row: dict[str, str]) -> list[_TripleMapType]: + ss = HJ_EXT[f"{row['ID-識別値']}_{row['キー情報']}"] + + triples = GbizInfoKatsudoMapper.map_to_triples(row) + triples.extend( + [ + (ss, RDF.type, HJ.表彰型), + ] + ) + return triples + + +__all__ = ["GbizInfoHyoshoMapper"] diff --git a/gbizinfo_lod/mappers/shokuba.py b/gbizinfo_lod/mappers/shokuba.py new file mode 100644 index 0000000..7ffb0a7 --- /dev/null +++ b/gbizinfo_lod/mappers/shokuba.py @@ -0,0 +1,364 @@ +from ..namespace import * +from . import Literal, _TripleMapType, bpo +from ._katsudo import GbizInfoKatsudoMapper + + +class GbizInfoShokubaMapper(GbizInfoKatsudoMapper): + """職場情報""" + + @staticmethod + def map_to_triples(row: dict[str, str]) -> list[_TripleMapType]: + s = HJ_DATA[row["ID-識別値"]] + ss = HJ_EXT[row["キー情報"]] + + # 数量コレクション + suryo_keys = [ + # 数値, 単位表記, 指標, 種別 + ( + "職場情報-企業規模", + "人", + "http://hojin-info.go.jp/code/職場情報/企業規模", + None, + ), + ( + "職場情報-企業規模詳細(男性)", + "人", + "http://hojin-info.go.jp/code/職場情報/企業規模詳細(男性)", + None, + ), + ( + "職場情報-企業規模詳細(女性)", + "人", + "http://hojin-info.go.jp/code/職場情報/企業規模詳細(女性)", + None, + ), + ( + "職場情報-平均継続勤務年数-男性", + "年", + "http://hojin-info.go.jp/code/職場情報/男性平均継続勤務年数", + "職場情報-平均継続勤務年数-範囲", + ), + ( + "職場情報-平均継続勤務年数-女性", + "年", + "http://hojin-info.go.jp/code/職場情報/女性平均継続勤務年数", + "職場情報-平均継続勤務年数-範囲", + ), + ( + "職場情報-正社員の平均継続勤務年数", + "年", + "http://hojin-info.go.jp/code/職場情報/正社員平均継続勤務年数", + "職場情報-平均継続勤務年数-範囲", + ), + ( + "職場情報-従業員の平均年齢", + "歳", + "http://hojin-info.go.jp/code/職場情報/従業員平均年齢", + None, + ), + ( + "職場情報-月平均所定外労働時間", + "時間", + "http://hojin-info.go.jp/code/職場情報/月平均所定外労働時間", + None, + ), + ( + "職場情報-労働者に占める女性労働者の割合", + "%", + "http://hojin-info.go.jp/code/職場情報/女性労働者割合", + "職場情報-労働者に占める女性労働者の割合-範囲", + ), + ( + "職場情報-女性管理職人数", + "人", + "http://hojin-info.go.jp/code/職場情報/女性管理職人数", + None, + ), + ( + "職場情報-管理職全体人数(男女計)", + "人", + "http://hojin-info.go.jp/code/職場情報/管理職人数", + None, + ), + ( + "職場情報-女性役員人数", + "人", + "http://hojin-info.go.jp/code/職場情報/女性役員人数", + None, + ), + ( + "職場情報-役員全体人数(男女計)", + "人", + "http://hojin-info.go.jp/code/職場情報/役員人数", + None, + ), + ( + "職場情報-育児休業対象者数(男性)", + "人", + "http://hojin-info.go.jp/code/職場情報/育児休業対象者数(男性)", + None, + ), + ( + "職場情報-育児休業対象者数(女性)", + "人", + "http://hojin-info.go.jp/code/職場情報/育児休業対象者数(女性)", + None, + ), + ( + "職場情報-育児休業取得者数(男性)", + "人", + "http://hojin-info.go.jp/code/職場情報/育児休業取得者数(男性)", + None, + ), + ( + "職場情報-育児休業取得者数(女性)", + "人", + "http://hojin-info.go.jp/code/職場情報/育児休業取得者数(女性)", + None, + ), + ] + + triples = [ + (s, HJ.法人活動情報, ss), + (ss, RDF.type, HJ.職場情報型), + # 1 + ( + ss, + IC.ID, + bpo( + [ + (RDF.type, IC.ID型), + (IC.体系, IC_ID.corporateNumber), + (IC.識別値, row["ID-識別値"]), + ] + ), + ), + # 2 + ( + ss, + IC.連絡先, + bpo( + [ + (RDF.type, IC.連絡先型), + (IC.Webサイト, row["連絡先-Webサイト"]), + ] + ), + ), + # 3 + ( + ss, + IC.代表者, + bpo( + [ + (RDF.type, IC.構成員型), + ( + IC.構成員, + bpo( + [ + (RDF.type, IC.人型), + ( + IC.氏名, + bpo( + [ + (RDF.type, IC.氏名型), + (IC.姓名, row["代表者-表示用氏名"]), + ] + ), + ), + ( + IC.氏名, + bpo( + [ + (RDF.type, IC.氏名型), + (IC.姓名, row["代表者-検索用氏名"]), + ] + ), + ), + ] + ), + ), + ] + ), + ), + # 4 + ( + ss, + HJ.更新日時, + bpo( + [ + (RDF.type, IC.日時型), + ( + IC.標準型日時, + Literal( + row["更新日時"], + datatype=XSD.dateTime, + ), + ), + ] + ), + ), + # 5, 6, 7, 8 + ( + ss, + HJ.公表組織, + bpo( + [ + (RDF.type, IC.組織型), + ( + IC.ID, + bpo( + [ + (RDF.type, IC.ID型), + ( + IC.体系, + bpo( + [ + (RDF.type, IC.ID体系型), + ( + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + ( + IC.表記, + row["公表組織-ID名称"], + ), + ] + ), + ), + ( + IC.発行者, + bpo( + [ + (RDF.type, IC.組織型), + ( + IC.名称, + bpo( + [ + ( + RDF.type, + IC.名称型, + ), + ( + IC.表記, + row[ + "公表組織-ID発行者" + ], + ), + ] + ), + ), + ] + ), + ), + ] + ), + ), + (IC.識別値, row["公表組織-ID識別値"]), + ] + ), + ), + ( + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + (IC.表記, row["公表組織-名称表記"]), + ] + ), + ), + ] + ), + ), + # 9 + ( + ss, + HJ.システム名, + bpo([(RDF.type, IC.名称型), (IC.表記, row["システム名"])]), + ), + # 10 + (ss, HJ.キー情報, row["キー情報"]), + # 11 + ( + ss, + HJ.創業日, + bpo( + [ + (RDF.type, IC.日付型), + ( + IC.年, + Literal(row["職場情報-創業年"], datatype=XSD.integer), + ), + ] + ), + ), + # 12 + (ss, HJ.事業内容, row["職場情報-事業概要"]), + # 13 + ( + ss, + IC.関連人員, + bpo( + [ + (RDF.type, IC.人数型), + ( + IC.人数, + Literal( + row["関連人員-人数"], datatype=XSD.nonNegativeInteger + ), + ), + ] + ), + ), + # 14, 15, 16, 17 + *[ + ( + ss, + HJ.数量コレクション, + bpo( + [ + (RDF.type, HJ.数量コレクション型), + ( + HJ.数量, + bpo( + [ + (RDF.type, HJ.数量型), + ( + IC.数値, + Literal( + row[value], + datatype=XSD.decimal, + ), + ), + ( + HJ.指標, + ( + Literal( + "http://hojin-info.go.jp/code/職場情報/企業規模", + datatype=IC.コード型, + ) + if row[value] + else None + ), + ), + ( + IC.単位表記, + unit if row[value] else None, + ), + ( + IC.種別, + row[category] if category else None, + ), + ] + ), + ), + ] + ), + ) + for value, unit, indicator, category in suryo_keys + ], + ] + return triples + + +__all__ = ["GbizInfoShokubaMapper"] diff --git a/gbizinfo_lod/mappers/todokede.py b/gbizinfo_lod/mappers/todokede.py new file mode 100644 index 0000000..24ce5e6 --- /dev/null +++ b/gbizinfo_lod/mappers/todokede.py @@ -0,0 +1,24 @@ +from rdflib import Literal, URIRef + +from ..namespace import * +from . import _TripleMapType, bpo +from ._katsudo import GbizInfoKatsudoMapper + + +class GbizInfoTodokedeMapper(GbizInfoKatsudoMapper): + """届出認定情報""" + + @staticmethod + def map_to_triples(row: dict[str, str]) -> list[_TripleMapType]: + ss = HJ_EXT[f"{row['ID-識別値']}_{row['キー情報']}"] + + triples = GbizInfoKatsudoMapper.map_to_triples(row) + triples.extend( + [ + (ss, RDF.type, HJ.届出認定型), + ] + ) + return triples + + +__all__ = ["GbizInfoTodokedeMapper"] diff --git a/gbizinfo_lod/mappers/tokkyo.py b/gbizinfo_lod/mappers/tokkyo.py new file mode 100644 index 0000000..0cfdf2f --- /dev/null +++ b/gbizinfo_lod/mappers/tokkyo.py @@ -0,0 +1,62 @@ +from rdflib import Literal, URIRef + +from ..namespace import * +from . import _TripleMapType, bpo +from ._katsudo import GbizInfoKatsudoMapper + + +class GbizInfoTokkyoMapper(GbizInfoKatsudoMapper): + """特許情報""" + + @staticmethod + def map_to_triples(row: dict[str, str]) -> list[_TripleMapType]: + ss = HJ_EXT[f"{row['ID-識別値']}_{row['キー情報']}"] + + triples = GbizInfoKatsudoMapper.map_to_triples(row) + triples.extend( + [ + (ss, RDF.type, HJ.特許型), + # 40 + ( + ss, + HJ.認定番号, + bpo( + [ + (RDF.type, IC.ID型), + (IC.識別値, row["法人活動-認定番号-識別値"]), + ] + ), + ), + # 41 + ( + ss, + HJ.分類, + bpo( + [ + (RDF.type, IC.表記), + ( + IC.表記, + row["特許-分類1-表記"], + ), + ] + ), + ), + ( + ss, + HJ.分類, + bpo( + [ + (RDF.type, IC.表記), + ( + IC.表記, + row["特許-分類2-表記"], + ), + ] + ), + ), + ] + ) + return triples + + +__all__ = ["GbizInfoTokkyoMapper"] diff --git a/gbizinfo_lod/mappers/zaimu.py b/gbizinfo_lod/mappers/zaimu.py new file mode 100644 index 0000000..e1dec64 --- /dev/null +++ b/gbizinfo_lod/mappers/zaimu.py @@ -0,0 +1,413 @@ +from ..namespace import * +from . import Literal, _TripleMapType, bpo +from ._katsudo import GbizInfoKatsudoMapper + + +class GbizInfoZaimuMapper(GbizInfoKatsudoMapper): + """財務情報""" + + @staticmethod + def map_to_triples(row: dict[str, str]) -> list[_TripleMapType]: + s = HJ_DATA[row["ID-識別値"]] + ss = HJ_EXT[row["キー情報"]] + + # 数量コレクション + suryo_keys = [ + # 数値, 単位表記, 指標 + ( + "財務情報-売上高", + "財務情報-売上高ユニット参照", + "http://hojin-info.go.jp/code/財務情報/売上高", + ), + ( + "財務情報-営業収益", + "財務情報-営業収益ユニット参照", + "http://hojin-info.go.jp/code/財務情報/営業収益", + ), + ( + "財務情報-営業収入", + "財務情報-営業収入ユニット参照", + "http://hojin-info.go.jp/code/財務情報/営業収入", + ), + ( + "財務情報-営業総収入", + "財務情報-営業総収入ユニット参照", + "http://hojin-info.go.jp/code/財務情報/営業総収入", + ), + ( + "財務情報-経常収益", + "財務情報-経常収益ユニット参照", + "http://hojin-info.go.jp/code/財務情報/経常収益", + ), + ( + "財務情報-正味収入保険料", + "財務情報-正味収入保険料ユニット参照", + "http://hojin-info.go.jp/code/財務情報/正味収入保険料", + ), + ( + "財務情報-経常利益又は経常損失(△)", + "財務情報-経常利益又は経常損失(△)ユニット参照", + "http://hojin-info.go.jp/code/財務情報/経常利益又は経常損失", + ), + ( + "財務情報-当期純利益又は当期純損失(△)", + "財務情報-当期純利益又は当期純損失(△)ユニット参照", + "http://hojin-info.go.jp/code/財務情報/当期純利益又は当期純損失", + ), + ( + "資本金-数値", + "財務情報-資本金ユニット参照", + "http://hojin-info.go.jp/code/財務情報/資本金", + ), + ( + "財務情報-純資産額", + "財務情報-純資産額ユニット参照", + "http://hojin-info.go.jp/code/財務情報/純資産額", + ), + ( + "財務情報-総資産額", + "財務情報-総資産額ユニット参照", + "http://hojin-info.go.jp/code/財務情報/総資産額", + ), + ( + "関連人員-人数", + "財務情報-従業員数ユニット参照", + "http://hojin-info.go.jp/code/財務情報/従業員数", + ), + ] + + triples = [ + (s, HJ.法人活動情報, ss), + (ss, RDF.type, HJ.財務型), + # 1 + ( + ss, + IC.ID, + bpo( + [ + (RDF.type, IC.ID型), + (IC.体系, IC_ID.corporateNumber), + (IC.識別値, row["ID-識別値"]), + ] + ), + ), + # 2, 3 + ( + ss, + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + (IC.種別, row["名称-種別"]), + (IC.表記, row["名称-表記"]), + ] + ), + ), + # 4, 5 + ( + ss, + IC.住所, + bpo( + [ + (RDF.type, HJ.住所型), + (IC.種別, row["住所-種別"]), + (IC.表記, row["住所-表記"]), + ] + ), + ), + # 6, 7, 8 + ( + ss, + IC.代表者, + bpo( + [ + (RDF.type, IC.構成員型), + (IC.役割, row["代表者-役割"]), + ( + IC.構成員, + bpo( + [ + (RDF.type, IC.人型), + ( + IC.氏名, + bpo( + [ + (RDF.type, IC.氏名型), + (IC.種別, row["代表者-表示用種別"]), + (IC.姓名, row["代表者-表示用氏名"]), + ] + ), + ), + ( + IC.氏名, + bpo( + [ + (RDF.type, IC.氏名型), + (IC.種別, row["代表者-検索用種別"]), + (IC.姓名, row["代表者-検索用氏名"]), + ] + ), + ), + ] + ), + ), + ] + ), + ), + # 9, 10, 11 + ( + ss, + IC.資本金, + bpo( + [ + (RDF.type, IC.金額型), + (IC.数値, Literal(row["資本金-数値"], datatype=XSD.decimal)), + (IC.通貨, row["資本金-通貨"]), + ( + IC.通貨コード, + Literal( + row["資本金-通貨コード"], + datatype=ISO4217.ISO3AlphaCurrencyCodeContentType, + ), + ), + ] + ), + ), + # 12 + ( + ss, + IC.関連人員, + bpo( + [ + (RDF.type, IC.人数型), + ( + IC.人数, + Literal( + row["関連人員-人数"], datatype=XSD.nonNegativeInteger + ), + ), + ] + ), + ), + # 13 + ( + ss, + HJ.更新日時, + bpo( + [ + (RDF.type, IC.日時型), + ( + IC.標準型日時, + Literal( + row["更新日時"], + datatype=XSD.dateTime, + ), + ), + ] + ), + ), + # 14, 15, 16, 17 + ( + ss, + HJ.公表組織, + bpo( + [ + (RDF.type, IC.組織型), + ( + IC.ID, + bpo( + [ + (RDF.type, IC.ID型), + ( + IC.体系, + bpo( + [ + (RDF.type, IC.ID体系型), + ( + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + ( + IC.表記, + row["公表組織-ID名称"], + ), + ] + ), + ), + ( + IC.発行者, + bpo( + [ + (RDF.type, IC.組織型), + ( + IC.名称, + bpo( + [ + ( + RDF.type, + IC.名称型, + ), + ( + IC.表記, + row[ + "公表組織-ID発行者" + ], + ), + ] + ), + ), + ] + ), + ), + ] + ), + ), + (IC.識別値, row["公表組織-ID識別値"]), + ] + ), + ), + ( + IC.名称, + bpo( + [ + (RDF.type, IC.名称型), + (IC.表記, row["公表組織-名称表記"]), + ] + ), + ), + ] + ), + ), + # 18 + ( + ss, + HJ.システム名, + bpo([(RDF.type, IC.名称型), (IC.表記, row["システム名"])]), + ), + # 19 + (ss, HJ.キー情報, row["キー情報"]), + # 20 + (ss, HJ.回次, row["財務情報-回次"]), + # 21, 22, 23 + *[ + ( + ss, + HJ.株主情報, + bpo( + [ + (RDF.type, HJ.株主情報型), + ( + HJ.順位, + Literal(row[f"株主情報{i}-順位"], datatype=XSD.decimal), + ), + (IC.表記, row[f"株主情報{i}-氏名又は名称"]), + ( + HJ.所有比率, + Literal( + row[ + f"株主情報{i}-発行済株式総数に対する所有株式数の割合" + ], + datatype=XSD.decimal, + ), + ), + ] + ), + ) + for i in range(1, 16) + ], + # 24, 25, 26 + *[ + ( + ss, + HJ.数量コレクション, + bpo( + [ + (RDF.type, HJ.数量コレクション型), + ( + HJ.数量, + bpo( + [ + (RDF.type, HJ.数量型), + ( + IC.数値, + Literal( + row[value], + datatype=XSD.decimal, + ), + ), + ( + HJ.指標, + ( + Literal( + indicator, + datatype=IC.コード型, + ) + if row[value] + else None + ), + ), + (IC.単位表記, row[unit]), + ] + ), + ), + ] + ), + ) + for value, unit, indicator in suryo_keys + ], + # 27, 28, 29, 30, 31, 32 + ( + ss, + HJ.書類情報, + bpo( + [ + (RDF.type, IC.文書型), + (IC.ID, row["書類情報-書類管理番号"]), + ( + IC.種別コード, + bpo( + [ + (RDF.type, IC.コード型), + (IC.識別値, row["書類情報-書類種別コード"]), + ] + ), + ), + ( + IC.日付, + bpo( + [ + (RDF.type, IC.日付型), + (IC.標準型日付, row["書類情報-提出日"]), + ( + IC.種別, + "提出日" if row["書類情報-提出日"] else None, + ), + ] + ), + ), + ( + IC.記述, + bpo( + [ + (RDF.type, IC.記述型), + (IC.説明, row["書類情報-事業年度"]), + ( + IC.種別, + ( + "事業年度" + if row["書類情報-事業年度"] + else None + ), + ), + ] + ), + ), + ] + ), + ), + ] + return triples + + +__all__ = ["GbizInfoZaimuMapper"] diff --git a/gbizinfo_lod/namespace.py b/gbizinfo_lod/namespace.py new file mode 100644 index 0000000..e35ddd9 --- /dev/null +++ b/gbizinfo_lod/namespace.py @@ -0,0 +1,24 @@ +from rdflib import Namespace +from rdflib.namespace import RDF, XSD + +IC = Namespace("http://imi.go.jp/ns/core/rdf#") +IC_ID = Namespace("http://imi.go.jp/ns/code_id/id/") +HJ = Namespace("http://hojin-info.go.jp/ns/domain/biz/1#") +HJ_DATA = Namespace("http://hojin-info.go.jp/data/") +HJ_BASIC = Namespace("http://hojin-info.go.jp/data/basic/") +HJ_EXT = Namespace("http://hojin-info.go.jp/data/ext/") +ISO4217 = Namespace( + "urn:un:unece:uncefact:codelist:standard:ISO:ISO3AlphaCurrencyCode:2012-08-31#" +) + +__all__ = [ + "RDF", + "XSD", + "IC", + "IC_ID", + "HJ", + "HJ_DATA", + "HJ_BASIC", + "HJ_EXT", + "ISO4217", +] diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..1ba93fb --- /dev/null +++ b/poetry.lock @@ -0,0 +1,368 @@ +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. + +[[package]] +name = "black" +version = "24.4.2" +description = "The uncompromising code formatter." +optional = false +python-versions = ">=3.8" +files = [ + {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"}, + {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"}, + {file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"}, + {file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"}, + {file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"}, + {file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"}, + {file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"}, + {file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"}, + {file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"}, + {file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"}, + {file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"}, + {file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"}, + {file = "black-24.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf10f7310db693bb62692609b397e8d67257c55f949abde4c67f9cc574492cc7"}, + {file = "black-24.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98e123f1d5cfd42f886624d84464f7756f60ff6eab89ae845210631714f6db94"}, + {file = "black-24.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48a85f2cb5e6799a9ef05347b476cce6c182d6c71ee36925a6c194d074336ef8"}, + {file = "black-24.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b1530ae42e9d6d5b670a34db49a94115a64596bc77710b1d05e9801e62ca0a7c"}, + {file = "black-24.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1"}, + {file = "black-24.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da33a1a5e49c4122ccdfd56cd021ff1ebc4a1ec4e2d01594fef9b6f267a9e741"}, + {file = "black-24.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e"}, + {file = "black-24.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9176b9832e84308818a99a561e90aa479e73c523b3f77afd07913380ae2eab7"}, + {file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"}, + {file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"}, +] + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=0.9.0" +platformdirs = ">=2" + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "certifi" +version = "2024.6.2" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, + {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "idna" +version = "3.7" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, +] + +[[package]] +name = "isodate" +version = "0.6.1" +description = "An ISO 8601 date/time/duration parser and formatter" +optional = false +python-versions = "*" +files = [ + {file = "isodate-0.6.1-py2.py3-none-any.whl", hash = "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96"}, + {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "isort" +version = "5.13.2" +description = "A Python utility / library to sort Python imports." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, +] + +[package.extras] +colors = ["colorama (>=0.4.6)"] + +[[package]] +name = "joblib" +version = "1.4.2" +description = "Lightweight pipelining with Python functions" +optional = false +python-versions = ">=3.8" +files = [ + {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, + {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "pathspec" +version = "0.12.1" +description = "Utility library for gitignore style pattern matching of file paths." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, +] + +[[package]] +name = "platformdirs" +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] + +[[package]] +name = "pyparsing" +version = "3.1.2" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, + {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "rdflib" +version = "7.0.0" +description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information." +optional = false +python-versions = ">=3.8.1,<4.0.0" +files = [ + {file = "rdflib-7.0.0-py3-none-any.whl", hash = "sha256:0438920912a642c866a513de6fe8a0001bd86ef975057d6962c79ce4771687cd"}, + {file = "rdflib-7.0.0.tar.gz", hash = "sha256:9995eb8569428059b8c1affd26b25eac510d64f5043d9ce8c84e0d0036e995ae"}, +] + +[package.dependencies] +isodate = ">=0.6.0,<0.7.0" +pyparsing = ">=2.1.0,<4" + +[package.extras] +berkeleydb = ["berkeleydb (>=18.1.0,<19.0.0)"] +html = ["html5lib (>=1.0,<2.0)"] +lxml = ["lxml (>=4.3.0,<5.0.0)"] +networkx = ["networkx (>=2.0.0,<3.0.0)"] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "urllib3" +version = "2.2.1" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.12" +content-hash = "4c0bebaca0aced4b18e0dd6ccaaa573a0f7269a72f236e0896848598c5da1268" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..0d726e4 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,25 @@ +[tool.poetry] +name = "gbizinfo-lod" +version = "0.1.0" +description = "A tool to generate LOD datasets for gBizINFO" +authors = ["Babibubebon "] +license = "MIT" +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.12" +requests = "^2.32.2" +click = "^8.1.7" +rdflib = "^7.0.0" +joblib = "^1.4.2" + +[tool.poetry.group.dev.dependencies] +black = "^24.4.2" +isort = "^5.13.2" + +[tool.poetry.scripts] +gbilod = "gbizinfo_lod.command:cli" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api"