Python

【Python】JSONを読み込む方法【複数ファイルからの取得はこれでOKです】

【Python】JSONを読み込む方法【複数ファイルからの取得はこれでOKです】
スポンサーリンク

こんにちは。さすをです。

以前、6,000万のPython案件に携わりました。

今回の記事は、複数ファイルからJSONを読み込む方法を紹介していきます。

それでは本文をどうぞ。

困っている女性
困っている女性

複数ファイルからJSONを読み込みたいんだけど、どうすればいいの。。

繰り返し処理をするのかしら、、よくわからないわ、、

さすを
さすを

その悩みを解決します!

この記事を読むとわかること:

  • 複数ファイルからJSONを読み込む方法
  • 複数のJSONを1つのファイルとして出力する方法

※0円のサンプルテキストという近道

独学よりプログラミングスクールの方が効果は出やすいですが、値段が高く、なかなか手を出しづらいですよね。techgymでは無料のサンプルテキストと解説動画をもらえるので、これを使ってお得にPythonの基礎を学ぶのもオススメです。

スポンサーリンク

1.複数ファイルからJSONを読み込む方法

1.複数ファイルからJSONを読み込む方法

今回はフォルダにsample1.json、sample2.json、sample3.jsonというJSONデータがあるとして、説明をしていきます。

sample1.json:

{
    "Age": { "Satoshi": 40, "Kazunari": 37 },
    "Test": [{ "Math": 70, "English": 60 },
        { "Math": 95, "English": 40 }
    ],
    "Name": "Arashi"
}

sample2.json:

{
    "Age": { "masaki": 38, "Sho": 38 },
    "Test": [{ "Math": 80, "English": 50 },
        { "Math": 100, "English": 100 }
    ],
    "Name": "Arashi"
}

sample3.json:

{
    "Age": { "Jun": 37 },
    "Test": [{ "Math": 85, "English": 85 }],
    "Name": "Arashi"
}

複数ファイルからJSONを読み込むスクリプトはこちら。

# jsonを読み込むときに必ず使用するモジュール
import json

import os

#フォルダの個数をカウント(listdirの引数はファイルのあるフォルダのパス)
num = len(os.listdir('blog_data'))

#読み込むファイルのパスを指定
#'r'はreadの略
for i in range(num):
    json_file = open('blog_data/sample' + str(i+1) + '.json','r')

#辞書型で読み込む(json.load())
    json_dict = json.load(json_file)

# 表示
    print(json_dict)
#{'Age': {'Satoshi': 40, 'Kazunari': 37}, 'Test': [{'Math': 70, 'English': 60}, {'Math': 95, 'English': 40}], 'Name': 'Arashi'}
{'Age': {'masaki': 38, 'Sho': 38}, 'Test': [{'Math': 80, 'English': 50}, {'Math': 100, 'English': 100}], 'Name': 'Arashi'}0}, {'Math': 100, 'English': 100}], 'Name': 'Arashi'}                Arashi'}
{'Age': {'Jun': 37}, 'Test': [{'Math': 85, 'English': 85}], 'Name': 'Arashi'}
さすを
さすを

複数のJSONファイルを読み込むことができました!

出力結果が文字化けしている場合は、open()関数の引数でエンコーディング(unicode-escape)を設定しましょう。

json_file = open('blog_data/sample' + str(i+1) + '.json','r',encoding='unicode-escape')


万が一、エラーが発生してしまった場合は、【Python】JSON形式のファイル読み込み時にエラーがでた場合の対処方法の記事をご覧ください。

よくあるエラーをまとめているので、すぐに解決することができます。

スポンサーリンク

2.改行で区切られている複数のJSONの読み込み方法

2.1つのファイルに改行で区切られている複数のJSONの読み込み方法

1つのファイルに改行で区切られている複数のJSONを読み込む方法は、pandasライブラリを使用するのが一番簡単です。

複数のデータが改行されているJSONの例:

{ "name": "satoshi", "age": 40, "color": "blue", "hobby": "fishing" }
{ "name": "sho", "age": 38, "color": "red", "hobby": "rap" }
{ "name": "jun", "age": 37, "color": "purple", "hobby": "smoothie" }
{ "name": "masaki", "age": 38, "color": "green", "hobby": "animal" }
{ "name": "kazunari", "age": 37, "color": "yellow", "hobby": "game" }

詳しくは、【徹底解説】pandasでJSON形式のファイルを読み込む方法の記事で解説しているので参考にしてみてください。

3.複数ファイルからJSONを読み込み、一つのファイルとして出力する方法

3.複数ファイルからJSONを読み込み、一つのファイルとして出力する方法

複数ファイルからJSONを読み込み、一つのファイルとして出力するのは、リストを使えばOKです。

# jsonを読み込むときに必ず使用するモジュール
import json

import os

#フォルダの個数をカウント(listdirの引数はファイルのあるフォルダのパス)
num = len(os.listdir('blog_data'))

#空のリストを作成
json_list = []

#読み込むファイルのパスを指定
#'r'はreadの略
for i in range(num):
    json_file = open('blog_data/sample' + str(i+1) + '.json','r')

#辞書型で読み込む(json.load())
#読み込んだJSONをリストに追加
    json_dict = json.load(json_file)
    json_list.append(json_dict)

#ファイルに書き出し
with open('blog_data/sample_total.json', 'w') as f:
    json.dump(json_list, f, indent=4)

出力結果は下記の通り。

[
    {
        "Age": {
            "Kazunari": 37,
            "Satoshi": 40
        },
        "Name": "Arashi",
        "Test": [
            {
                "English": 60,
                "Math": 70
            },
            {
                "English": 40,
                "Math": 95
            }
        ]
    },
    {
        "Age": {
            "Sho": 38,
            "masaki": 38
        },
        "Name": "Arashi",
        "Test": [
            {
                "English": 50,
                "Math": 80
            },
            {
                "English": 100,
                "Math": 100
            }
        ]
    },
    {
        "Age": {
            "Jun": 37
        },
        "Name": "Arashi",
        "Test": [
            {
                "English": 85,
                "Math": 85
            }
        ]
    }
]
さすを
さすを

1ファイルに出力することができました!

4.Pythonスキルを伸ばす方法とは?

4-1.独学編

Pythonスキルを独学で身に着けるためには、参考書が必須です。

おすすめのPython書籍を以下の記事で解説したので、参考にしていただけたらと思います。

>>【レベル別&徹底解説】 Python書籍のおすすめ8選

本を買う前に、一度Pythonの学習をしてみたいという方は、Pythonを学べるおすすめ学習サイトを以下の記事で解説したので、こちらも参考にしてみてください。

>>【料金別&徹底解説】 Pythonおすすめ勉強サイト8選【楽しく学ぼう】

4-2.スクール編

お金がかかってもいいから、少しでも早くPythonスキルを身につけたい方は、TechAcademy(テックアカデミー)のPythonコースがおすすめです。

エンジニアになれば、受講料は1か月もあれば回収できるので、問題なしです。

本気でPythonスキルを身につけたい方は、スクールで一気にスキルを身に着けるのもありでしょう。

>>TechAcademy(テックアカデミー)のPythonコースはこちら

5.おわりに

5.おわりに

6,000万のPython案件に携わった経験のある筆者が、複数ファイルからJSONを読み込む方法を紹介してきました。

Python開発では複数のJSONファイルを読み込んで、整形、出力することが非常に多いので、改めて確認しておきましょう!

この記事が少しでもあなたの役に立てていたらうれしいです。

頑張るあなたを応援しています!

それでは!


>>【Python】JSONを辞書型で読み込む方法

>>【初心者向け】Python学習の始め方【現役エンジニアがわかりやすく解説】

>>【徹底解説】Pythonエンジニアに転職する方法【失敗しない方法を詳しく解説】

>>【これだけ知っておけばOKです】 現役エンジニアもよく使う便利なPythonライブラリ22選

コメント

タイトルとURLをコピーしました