0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PythonでOpenWeatherのJSONファイルをテキスト化する

Last updated at Posted at 2019-09-29

#はじめに
OpenWeatherのAPIが天気の情報量に長けていたので登録して無料版を使ってみました。
天気APIを叩く方法は
・都市ID
・都市名
・郵便番号
・地図座標
の4パターンです
詳しくはこちらの記事がわかりやすいです

この記事ではOpenWeatherの世界の都市リストのJSONファイルを
Pythonで都市を日本にフィルタリングしてテキスト化した内容を共有したいと思います♪

#世界の都市リストのファイルをダウンロードする

私はWindows環境です
gzファイル は __Lhaplus__で解凍しました

Macの解凍方法はわからないのでググってくださいw

#PythonでJSONファイルをテキスト化する

import json

Jplist = []#JSONを読み取る
listrows = []#出力用リスト

f = open('任意の.jsonファイル', 'r' ,encoding='utf-8')
jsn = json.load(f)#JSONファイルを開く

for key in jsn:#JSONファイルを読み取る
    if key['country'] == 'JP':#日本のみに絞る
        for value in key:#日本の内容を行ごとに読み取る
            Jplist.append(str(value) + ':' + str(key[value]))#行毎に読み取る
        listrows.extend(Jlist)#リストを二次元配列として追記
        Jplist.clear()#Jplistの配列を初期化する

with open("任意の.txtファイル", 'w', encoding='utf-8') as tx:
    for values in listrows:#行ごとにテキスト出力する
        tx.write(str(values) + '\n')#テキストファイルに書き込む
print('完了')

ポイント

  • JSONファイルをなぜか辞書で読込めなかったのでリストで読込んだ

 ※JSONファイルがリストで作られてるのかな?
 ※辞書できれいに処理したかったがやむなくリストで処理
 ※いや、楽勝で辞書で読み込めたよって方いたら教えてくださいw)

  • リスト+リストで二次元配列化しテキスト出力した

 ※__extend__メソッドでリストにリストを追加してテキストへ追記

こんな感じでテキスト化できました。

#おわりに
日本のみにフィルタリングしたので、マスター化すれば日本全国の拠点を抑えられるかと思います
今後は天気のAPIを活用した記事を書いていきたいと思います♪

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?