👀
[Python]json読み込み、loadとloadsの違い
loadsとdumpsの基本的な使い方
main.py
import json
# ただの文字列
json_str = "{'taro': {'age': 18, 'gender': 'male', 'email': 'taro@email.com'}}"
# loadsは文字列を引数にとり、辞書型で返します。
json_dict = json.loads(json_str)
# dumpsは辞書型を引数にとり、文字列で返します。
json_str = json.dumps(json_dict)
実はloadsに似たものでloadというのもあります。
違いについては次で説明します。
loadsとloadの違い
jsonファイル、sample.jsonのageの値を表示したいとします。
sample.json
{ "name": "Tanaka", "age": 26 }
main.py
import json
with open('sample.json', 'r') as f:
json_str = f.read() # loadsは「文字列」を引数に取る。つまり、「ファイルオブジェクト型」である f は受け取れない。よって、f.readを使って一度「文字列」にする。
json_dict = json.loads(json_str) # 文字列で読み込む
print(json_dict['age'])
main.py
import json
with open('sample.json', 'r') as f:
json_dict = json.load(f) # loadは 「ファイルオブジェクト型」を引数に取るので、f を直接渡せる。
print(json_dict['age'])
with openでjsonを読み込むならloadを使った方が、f.readがいらない分短く済む。
dumpについてはまた時間があるときに追記しようと思います。
因みに、loadsのsはstringのsらしいです。(覚えやすい)
読んでくれてありがとう😭
分かりにくい所があれば遠慮なくご指摘ください
Discussion