[Python]json読み込み、loadとloadsの違い
4636 ワード
loadsとdumpsの基本的な使い方
main.py
import json
# ただの文字列
json_str = "{'taro': {'age': 18, 'gender': 'male', 'email': '[email protected]'}}"
# loadsは文字列を引数にとり、辞書型で返します。
json_dict = json.loads(json_str)
# dumpsは辞書型を引数にとり、文字列で返します。
json_str = json.dumps(json_dict)
実はloadsに似たものでloadというのもあります。
違いについては次で説明します。
loadsとloadの違い
jsonファイル、sample.jsonのageの値を表示したいとします。
{ "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らしいです。なるほどね
読んでくれてありがとう😭
分かりにくい所があれば遠慮なくご指摘ください
Author And Source
この問題について([Python]json読み込み、loadとloadsの違い), 我々は、より多くの情報をここで見つけました https://zenn.dev/milkystack/articles/a5b94da6ab6542著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol