こんにちは、さすを(@sasuwo0409)です。
以前、6,000万のPython案件に携わりました。
今回の記事は、JSON形式のデータを辞書型で読み込む方法を解説していきます。
実例を用いて解説しているので、使い方も含めて理解できると思います。
それでは本文をどうぞ。
JSONファイルを辞書型という型で読み込めるらしいけど、よくわからないです。
初心者でもわかるように説明してほしいです、、。
この悩みを解決します!
※0円のサンプルテキストという近道
独学よりプログラミングスクールの方が効果は出やすいですが、値段が高く、なかなか手を出しづらいですよね。techgymでは無料のサンプルテキストと解説動画をもらえるので、これを使ってお得にPythonの基礎を学ぶのもオススメです。
最短1分でできる!
1.PythonでJSONを辞書型で読みこむ方法
今回は「sample.json」というJSONデータを使用します。また、フォルダ構成は以下の通りです。
#sample.json:
{
"Age": { "Satoshi": 40, "Kazunari": 37 },
"Test": [{ "Math": 70, "English": 60 },
{ "Math": 95, "English": 40 }
],
"Name": "Arashi"
}
#フォルダ構成:
JSON(フォルダ)
---sample.json
---read_json.py
1-1.JSONファイルを辞書型で読み込む方法
JSONを辞書型で読み込むためには「json.load()」を使います。
#read_json.py
#jsonを読み込むときに必ず使用するモジュール
import json
#読み込むファイルのパスを指定
#'r'はreadの略
json_file = open('フォルダの場所を記載する(今回はJSON)/sample.json', 'r')
#辞書型で読み込む
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'}
あっという間にJSONファイルを辞書型で読み込むことができました!
万が一、エラーが発生してしまった場合は、【Python】JSON形式のファイル読み込み時にエラーがでた場合の対処方法の記事をご覧ください。
よくあるエラーをまとめているので、すぐに解決することができます。
1-2.JSON形式の文字列を辞書型に変換する方法
JSON形式の文字列を辞書型に変換するには「json.loads()」を使います。
json.load()と似ているので、注意してください!
#read_json.py
#jsonを読み込むときに必ず使用するモジュール
import json
#JSONデータの定義
st = '{"Age": { "Satoshi": 40, "Kazunari": 37 },"Test": [{ "Math": 70, "English": 60 },{ "Math": 95, "English": 40 }],"Name": "Arashi"}'
#辞書型に変換
dic = json.loads(st)
#表示
print(dic)
#出力結果:
{'Age': {'Satoshi': 40, 'Kazunari': 37}, 'Test': [{'Math': 70, 'English': 60}, {'Math': 95, 'English': 40}], 'Name': 'Arashi'}
1-3.読み込んだ辞書型の値の取得
辞書の値は、キーを指定して取得します。
ネスト(階層が深くなっている)した要素の値は[キー][キー]と連続して記述すればOKです。
#read_json.py
#jsonを読み込むときに必ず使用するモジュール
import json
##JSONデータの定義
st = '{"Age": { "Satoshi": 40, "Kazunari": 37 },"Test": [{ "Math": 70, "English": 60 },{ "Math": 95, "English": 40 }],"Name": "Arashi"}'
#辞書型に変換
dic = json.loads(st)
#取得したい値のキーを指定
#表示
print(dic["Age"])
print(dic["Age"]["Satoshi"])
#出力結果:
{'Satoshi': 40, 'Kazunari': 37}
40
辞書の値がリストになっており、リストの値を取得したい場合は、インデックスを指定すればOKです。
#read_json.py
#jsonを読み込むときに必ず使用するモジュール
import json
#JSONデータの定義
st = '{"Age": { "Satoshi": 40, "Kazunari": 37 },"Test": [{ "Math": 70, "English": 60 },{ "Math": 95, "English": 40 }],"Name": "Arashi"}'
#辞書型に変換
dic = json.loads(st)
#表示
print(dic["Test"][0]["Math"])
#出力結果:
70
1-4.読み込んだ辞書型の値の変更
値を変更したいときは、キーを指定して代入します。
#read_json.py
#jsonを読み込むときに必ず使用するモジュール
import json
#JSONデータの定義
st = '{"Age": { "Satoshi": 40, "Kazunari": 37 },"Test": [{ "Math": 70, "English": 60 },{ "Math": 95, "English": 40 }],"Name": "Arashi"}'
#辞書型に変換
dic = json.loads(st)
#変更したい値のキーを指定、代入
dic["Name"] = "Omiya_Combi"
#表示
print(dic)
#出力結果:
{'Age': {'Satoshi': 40, 'Kazunari': 37}, 'Test': [{'Math': 70, 'English': 60}, {'Math': 95, 'English': 40}], 'Name': 'Omiya_Combi'}
1-5.読み込んだ辞書型の値の追加
キーと値の追加は、存在しないキーを指定して、値を代入します。
#read_json.py
#jsonを読み込むときに必ず使用するモジュール
import json
#JSONデータの定義
st = '{"Age": { "Satoshi": 40, "Kazunari": 37 },"Test": [{ "Math": 70, "English": 60 },{ "Math": 95, "English": 40 }],"Name": "Arashi"}'
#辞書型に変換
dic = json.loads(st)
#キーと値の追加
dic["Combi_Name"] = "Omiya_Combi"
#表示
print(dic)
#出力結果:
{'Age': {'Satoshi': 40, 'Kazunari': 37}, 'Test': [{'Math': 70, 'English': 60}, {'Math': 95, 'English': 40}], 'Name': 'Arashi', 'Combi_Name': 'Omiya_Combi'}
1-6.読み込んだ辞書型の値の削除
キーと値の削除は「pop()メソッド」を使用します。
#read_json.py
#jsonを読み込むときに必ず使用するモジュール
import json
#JSONデータの定義
st = '{"Age": { "Satoshi": 40, "Kazunari": 37 },"Test": [{ "Math": 70, "English": 60 },{ "Math": 95, "English": 40 }],"Name": "Arashi"}'
#辞書型に変換
dic = json.loads(st)
#pop()メソッドで削除したいキーを指定
dic.pop("Name")
#表示
print(dic)
出力結果:
{'Age': {'Satoshi': 40, 'Kazunari': 37}, 'Test': [{'Math': 70, 'English': 60}, {'Math': 95, 'English': 40}]}
JSONを辞書型に読み込む基礎はこれでOKです!
2.Pythonで辞書型のデータをJSON文字列としてファイル出力する方法
今回のフォルダ構成は以下の通りです。
#フォルダ構成:
JSON(フォルダ)
---write_json.py
---output.json(write_json.pyによってつくられるファイル)
それでは始めていきましょう!
辞書型のデータをJSON形式の文字列として出力するには「json.dumps()」を使用します。
#write_json.py
#jsonを読み込むときに必ず使用するモジュール
import json
#JSONデータの定義
st = '{"Age": { "Satoshi": 40, "Kazunari": 37 },"Test": [{ "Math": 70, "English": 60 },{ "Math": 95, "English": 40 }],"Name": "Arashi"}'
#辞書型に変換
dic = json.loads(st)
#データの追加
dic["Combi_Name"] = "Omiya_Combi"
#保存するファイルパスを指定
#'w'はwriteの略
#辞書をJSON形式の文字列に変換(第一引数:辞書名、第二引数:ファイル名、第三引数:インデントの数)
with open("output.json","w") as f:
json.dump(dic,f,indent=4)
#出力結果:
#output.json
{"Age": {"Satoshi": 40, "Kazunari": 37}, "Test": [{"Math": 70, "English": 60}, {"Math": 95, "English": 40}], "Name": "Arashi", "Combi_Name": "Omiya_Combi"}
辞書型のデータをJSON文字列としてファイル出力することができました!
おまけ:Pythonのおすすめ学習法
この記事を読んでいるということは、おそらくPythonでつまずいている人だと思います。
Pythonは非常に奥が深い言語なので、あなたにあった学習をしないと、一向に成長することはできません。
といっても、学習法が正しいかどうかを見極めるのは難しいですよね。
ここでは、僕がPythonエンジニアになりたての頃に行っていた学習法を載せておきます。
「Pythonのおすすめ学習法がわからない!」という人は、ぜひ参考にしてみてください。
独学編:
Pythonスキルを独学で身に着けるためには、参考書が必須です。
おすすめのPython書籍を以下の記事で解説したので、参考にしていただけたらと思います。
本を買う前に、一度Pythonの学習をしてみたいという人は、Pythonを学べるおすすめ学習サイトを以下の記事で解説しているので、こちらも参考にしてみてください。
>>【料金別&徹底解説】 Pythonおすすめ勉強サイト8選【楽しく学ぼう】
スクール編:
お金がかかってもいいから、少しでも早くPythonスキルを身につけたい人は、TechAcademy(テックアカデミー)のPythonコースがおすすめです。
エンジニアになれば、受講料は1か月もあれば回収できるので、問題なしです。
本気でPythonスキルを身につけたい人は、スクールで一気にスキルを身に着けることをおすすめします。
>>TechAcademy(テックアカデミー)のPythonコースはこちら
最後に:JSONの扱いは基礎中の基礎
ここまで、JSON形式のデータを辞書型で読み込む方法を解説していきました。
Python開発においてJSONを扱うことは非常に多いので、すぐに使えるようにしておくことが大切です。
といっても、暗記する必要はないので、分からなくなったらこの記事に戻って確認していただければと思います。
この記事が少しでもあなたの役に立てていたらうれしいです!
頑張るあなたを応援しています!
それでは!
最短1分でできる!
あなたにおすすめの記事:
>>【無料】Pythonでできること9選【初心者でも稼げます】
コメント