こんにちは。さすをです。
以前、6,000万のPython案件に携わりました。
今回の記事は、複数ファイルからJSONを読み込む方法を紹介していきます。
それでは本文をどうぞ。
複数ファイルからJSONを読み込みたいんだけど、どうすればいいの。。
繰り返し処理をするのかしら、、よくわからないわ、、
その悩みを解決します!
※0円のサンプルテキストという近道
独学よりプログラミングスクールの方が効果は出やすいですが、値段が高く、なかなか手を出しづらいですよね。techgymでは無料のサンプルテキストと解説動画をもらえるので、これを使ってお得にPythonの基礎を学ぶのもオススメです。
最短1分でできる!
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ファイルを読み込むことができました!
万が一、エラーが発生してしまった場合は、【Python】JSON形式のファイル読み込み時にエラーがでた場合の対処方法の記事をご覧ください。
よくあるエラーをまとめているので、すぐに解決することができます。
2.改行で区切られている複数の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を読み込み、一つのファイルとして出力する方法
複数ファイルから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の学習をしてみたいという方は、Pythonを学べるおすすめ学習サイトを以下の記事で解説したので、こちらも参考にしてみてください。
>>【料金別&徹底解説】 Pythonおすすめ勉強サイト8選【楽しく学ぼう】
4-2.スクール編
お金がかかってもいいから、少しでも早くPythonスキルを身につけたい方は、TechAcademy(テックアカデミー)のPythonコースがおすすめです。
エンジニアになれば、受講料は1か月もあれば回収できるので、問題なしです。
本気でPythonスキルを身につけたい方は、スクールで一気にスキルを身に着けるのもありでしょう。
>>TechAcademy(テックアカデミー)のPythonコースはこちら
5.おわりに
6,000万のPython案件に携わった経験のある筆者が、複数ファイルからJSONを読み込む方法を紹介してきました。
Python開発では複数のJSONファイルを読み込んで、整形、出力することが非常に多いので、改めて確認しておきましょう!
この記事が少しでもあなたの役に立てていたらうれしいです。
頑張るあなたを応援しています!
それでは!
最短1分でできる!
>>【初心者向け】Python学習の始め方【現役エンジニアがわかりやすく解説】
コメント