質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.40%
API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

2回答

609閲覧

郵便番号と市町村コードの一覧を提供されている WebAPIがあれば ご紹介ください。

saya24

総合スコア243

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2024/05/26 06:21

実現したいこと

表題のとおり、郵便番号と市町村コードの一覧をWebAPIで 取得したいです。

郵便局のWebページは、郵便番号と市町村コードを対にした一覧を 人系操作でCSVダウンロードできる認識です。当方の解釈が間違えなければ WebAPIではこれが提供されていない認識です。郵便局

PostCodeJpにしても、住所入力を簡易にするために利用できるWebAPIであって、当方が求めるような一覧取得には向いていない(データ種類の違うリクエストを多段階に行わない限り、全国の郵便番号と市町村コードの一覧を取得できない)印象があります。

発生している問題・分からないこと

このご時世に そんなことあるのかな?? という自分の認識誤りがないかの確認。
及び、実在するようであれば 提供されているWebAPIをご紹介頂きたいです。

欲を言わせてもらうと、多段階のリクエストをせずとも、全国の郵便番号と市町村コードを対にした一覧を取得したいです。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

正直なところ、都合よいのが見当たらない状況です。
本当にそんなことがあるのかな、と自分を疑っており、今回の問合せとなりました。

補足

社内で顧客系のマスタ入力作業・UIに 少しでも簡便化を図りたいとの声があり、今回模索しています。別に利益目的でもなんでもないです...

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2024/05/26 14:39 編集

> 多段階のリクエストをせずとも、全国の郵便番号と市町村コードを対にした一覧を取得したい 郵便番号データ(加工済バージョン)を使用する場合は、Python の pandas パッケージを利用して取得することができます。 import pandas as pd url = 'https://zipcloud.ibsnet.co.jp/zipcodedata/download?di=1714464638267' df = pd.read_csv(url, compression='zip', encoding='cp932', header=None, usecols=[0, 2]) print(df) ただ、郵便番号データでは市町村コードではなく、全国地方公共団体コードが使われています。また、上記のスクリプトを実行するたびに郵便番号データをダウンロードすることになりますので、最初にローカルPCにデータをダウンロードしておいて、それを読み込む様にするとよいかと思います。(もしくはデータフレーム(df)の内容を CSV ファイルに保存して、そのファイルを読み込む)
saya24

2024/05/27 00:28

melianさん ご親切に対応策のご提示ありがとうございました。 これは当該WebページのHTMLを ブラウザの開発者ツールで確認して、ボタン押下時のリンクURLを把握しておき、これにアクセスしてデータを取得する技術なんですかね。 これがパースとかいうものなのかも知れませんね~ 恥ずかしながらWebAPI以外に、インターネット上の構築物へ ブラウザ上の操作以外でアクセスできること 本当当方分かっていませんでした。 今回のご提示でまた次のステップの勉強に入る気になりました、本当にありがとうございます。
guest

回答2

0

郵便局のWebページは、郵便番号と市町村コードを対にした一覧を 人系操作でCSVダウンロードできる認識です。

なら、それをパース処理すればいいだけの話なのですが、どうして他人が提供するAPIが必要なのでしょうか。

投稿2024/05/26 08:16

maisumakun

総合スコア145628

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2024/05/26 08:18

> 本当にそんなことがあるのかな、と自分を疑っており、今回の問合せとなりました。 はっきりした元データがある以上、自分で作ってもそう大きな手間にはならないです。
saya24

2024/05/26 09:24

ご見解ありがとうございます。 パース処理っていうものが正直どういうものか存じ上げていません。 このキーワードでこの後検索してみますが、皆さんが思う以上に自分はノウハウを有してないんです。
otn

2024/05/26 13:14

> パース処理っていうものが正直どういうものか存じ上げていません。 知らない片仮名語が出てきたら、英語スペルを想像して英和辞書を引くと良いです。片仮名のままググっても英単語スペルが分かるケースも多いです。 (英語じゃない他国語の可能性もごくまれにありますけど) パースはparseというごく普通の英単語で、分解して解析するというような意味です。 IT用語としても、それ以上の特別な意味はありません。 使われる局面局面で、それぞれ何を解析するかによって様々な意味になります。 ・日本語文章パーサー ・英語文章パーサー ・HTMLパーサー ・Python言語パーサー ・CSVパーサー とかいろいろ。(パーサー = パースするプログラム) 「CSVのパース」であれば、CSVライブラリーを使って各項目に分解して、必要な項目を取り出すようなことですかね。
saya24

2024/05/27 00:20

Pythonの初心者用教科書を読みおえて、すぐデータ加工やWebAPI実行するくらいのコーディングに着手してしまった私ですが いよいよスクレイピングとかクローリングとかいう技術にチャレンジする話なのですかね。 しかしながら、melianさんのコーディングを試しに、コピペして実行したら、まさに欲しいものが意図も簡単に取得できてしまいました。こ、こんなにシンプル・短時間な対応で取得できてしまうとは...驚いてます
guest

0

ベストアンサー

私の勘違いでしたので改めて回答します。

上記によると、日本郵便が提供する郵便番号データには郵便番号と都道府県・市区町村コード (JIS X0401、JIS X0402) が含まれています。

したがって、このデータを使用すれば郵便番号データと市区町村コードの対応が取れます。また「人系操作でCSVダウンロード」する必要はなく、プログラミングによってダウンロードを自動化すればよいことですから、データ取得方法としてウェブAPIにこだわる必要もありません。

以下は元の回答です。


郵便番号のデータを精査していただくとわかりますが、郵便番号は市区町村コードと対になるように付番されていません。ですから直接ご質問のような情報を得られる情報源はないと考えられます。

  • 同じ郵便番号が複数の市区町村にまたがって (さらにはごくまれに県をまたいだ別の市町村の住所にも) 付番される場合があります。

郵便番号が付番される住所の情報を得られる情報源はあり、それらの住所が属する市区町村は判別可能ですから、それと市区町村と市区町村コードの対応から、お望みのデータを生成することは可能です。ですが繰り返しになりますが、ひとつの郵便番号が複数の市区町村に対応することがあります。

投稿2024/05/26 06:36

編集2024/05/26 08:48
ikedas

総合スコア4441

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saya24

2024/05/26 07:55

ご見解をありがとうございます、 対と申しあげている表現がよろしくなかったようですが、 郵便番号と市町村コードの実態が1:1である必要はなく、実態に基づき1:NのデータがWebAPIで 取得できればなと考えています。 皆様、需要がないんですかね
ikedas

2024/05/26 08:37 編集

日本郵政の郵便番号データはそれぞれ都道府県・市区町村の情報を含んでいますから、都道府県・市区町村の名前から自治体コードを引くためのマスタを用意しておけばいいのではないですか。自治体コードの更新は郵便番号に比べれば比較的まれなことですから、マスタのメンテナンスの手間はわずかです。 あと、ウェブAPIは使用料がかからないという前提のようにも見受けますが、郵便番号データのウェブAPIが無償で提供されているのは公共事業の会社が作成したデータだからで、それにさらに自治体コードなどの他のデータを結合させたければ基本的には有償のカスタマイズが必要ではないですか。 有料のウェブAPIサービスも探せば、ご希望のようなものもあるかもしれません (有料サービスについては私は知見がないのであるかどうかわかりません)。 〔追記〕それに、ご質問のpostcode-jp.comのサービスにしても営利企業が行なっているものですから,元の郵便番号データは無償といってもAPIサービスはいつか有料化されるかもしれません。公共事業ではありませんから企業の都合でサービス自体が終了することだってあり得ます。〔追記終わり〕
saya24

2024/05/26 10:04

>プログラミングによってダウンロードを自動化すれば、 ブラウザを利用して取得しているものは 人の操作かRPAぐらいでしかできないと思っていたら、違うんですかね? 何をキーワードに調べればこの技術を習得できのるのでしょうか? それがmaisumakunさんが仰られているパース処理と呼ばれるものなのでしょうか
ikedas

2024/05/26 10:31

1. まずは、「インターネットのしくみ」とか「通信プロトコル」とかいう言葉がタイトルに入っている書籍をAmazonなんかで検索して、見つかったものを何冊か購入し、それらを全て通読してください。 2. ウェブAPIは知っているのですから、プログラミングの経験が全くないわけではないと思ったのですが、「パース」がわからないのならあまり深く学んでいないのかと思います。そこで、もしも全く経験がないのならなんでもいいので一つプログラミング言語を学ぶとよいです。個人的にはPythonはOSを選ばず動きますし、教材も豊富だと思います。
ikedas

2024/05/26 10:53

今気づきましたが、過去のご質問にも何度かコメントしていますね。 で、郵便番号データについて言えば、元のデータが日本郵便から無償で提供されているのですから、それを使って自分で必要なデータ処理を行ってください。郵便番号の情報を提供するサイトのデータはすべてこの日本郵便のデータを加工したものに過ぎません。 上の私の回答に、その元のデータについて説明しているページへのリンクを入れました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.40%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問