キャッシュレス決済ポイント還元制度加盟店一覧をcsv化

経産省のキャッシュレス決済ポイント還元制度をご存じでしょうか。

政府が国民のために頑張って提供している、ちょっと評判のあれです。

経産省のサイトで固定店舗23万件、EC店舗5万件がPDFで提供されてます。便利ですね。。。。
と思うエンジニアはあまりいないかもしれません。せめて、CSVで提供してくれというのがエンジニアの情ってもんです。

このようにサービス化するのもいいですが、せっかく公開されているPDFなので、csvに変換して活用しましょう。

1.加盟店一覧をダウンロードする。

以下のURLの「登録加盟店一覧はこちら」からpdfをダウンロードする。

https://cashless.go.jp/assets/doc/kameiten_touroku_list.pdf

PDFの内容は以下の構成となっている。

① 加盟店登録申請状況(9月5日時点)・・・・・・・・・・・・・ 2

② 固定店舗(EC・通信販売を除く)・・・・・・・・・・・・・・・・ 3

③ EC・通信販売(楽天市場)・・・・・・・・・・・・・・・・・ 5537

④ EC・通信販売(Yahoo!ショッピング・・・・・・・・ 5905

⑤ EC・通信販売(その他ECサイト)・・・・・・・・・・・ 6246

ちなみに、固定店舗が232,391件、EC店舗が49,410件

2. AutomaterでPDF→テキスト変換する。

Automaterで以下のようなワークフローを作成し、PDFをテキストに変換します。

スクリーンショット 2019-09-15 19.00.11

① Finder項目の選択を求める

② PDFテキストを取り出す

③ ワークフローを実行する

ダウンロードした「kameiten_touroku_list.pdf」を選択すると、デスクトップに「kameiten_touroku_list.txt」が作成される。

3. テキストエディタで不要箇所を削除し、固定店舗用とEC店舗用に分ける。

適当なエディタで先頭から50行(「 沖縄県 5,743店」が有る行まで)を選択し、削除する。

スクリーンショット 2019-09-15 19.21.13

「3E」,「4E」,「5E」を検索し、その行の1行前でファイルを分割(4分割)する。分割箇所を選択し、別ファイルに貼り付け、名前を付けて保存する。ここでは、ファイル名を「kameiten_touroku_list_c1.txt」,「kameiten_touroku_list_c3.txt」,「kameiten_touroku_list_c4.txt」,「kameiten_touroku_list_c5.txt」にしている。

スクリーンショット 2019-09-16 0.22.55

4. awkとsedでページ毎の不要なヘッダーやフッタを削除する。数字に3桁区切りの「,」が付いているので削除する。

① ターミナルを起動する。

画像4

② デスクトップに移動する。

cd ~/Desktop

③ 以下のコマンドで、テキストからcsvに変換する。

awk '{                          
 if(NR%304<10){}else{print};
}' kameiten_touroku_list_c1.txt|sed "N;N;N;N;N;N;s/\n/,/g">kameiten_touroku_list_w1.csv
awk '{                          
 if(NR%187<7){}else{print};
}' kameiten_touroku_list_c3.txt|sed "s/,//g"|sed "N;N;s/\n/,/g">kameiten_touroku_list_w3.csv
awk '{                          
 if(NR%187<7){}else{print};
}' kameiten_touroku_list_c4.txt|sed "s/,//g"|sed "N;N;s/\n/,/g">kameiten_touroku_list_w4.csv
awk '{                    
 if(NR%187<7){}else{print};
}' kameiten_touroku_list_c5.txt|sed "s/,//g"|sed "N;N;s/\n/,/g">kameiten_touroku_list_w5.csv

・awkでページ毎に不要なヘッダ、フッタを読み飛ばす

・sed "s/,//g"で数字に3桁区切りの「,」が付いているので削除する

・固定店舗は、sed "N;N;N;N;N;N;s/\n/,/g"で7行のデータを「,」で繋げる。

・EC店舗は、sed "N;N;s/\n/,/g"で3行のデータを「,」で繋げる。

5. 変換されたCSVファイル。

kameiten_touroku_list_w1.csv・・・・ 固定店舗(232,391件)

kameiten_touroku_list_w3.csv・・・・ EC(楽天市場)(22,074件)

kameiten_touroku_list_w4.csv・・・・ EC(Yahoo!ショッピング)(20,447件)

kameiten_touroku_list_w5.csv・・・・ EC(その他ECサイト)(6,889件)





この記事が気に入ったらサポートをしてみませんか?