json.dumps
とjson.load
の違いは何ですか?
私の理解では、JSONを辞書にロードし、もう1つをオブジェクトにロードします。
dumps
はオブジェクトを受け取り、文字列を生成します。
>>> a = {'foo': 3}
>>> json.dumps(a)
'{"foo": 3}'
load
はファイルのようなオブジェクトを受け取り、そのオブジェクトからデータを読み込み、その文字列を使ってオブジェクトを作成します。
with open('file.json') as fh:
a = json.load(fh)
dump
とload
はファイルとオブジェクト間の変換を行い、dumps
とloads
は strings とオブジェクト間の変換を行います。 s
関数のラッパーとしてs
less関数を考えることができます。
def dump(obj, fh):
fh.write(dumps(obj))
def load(fh):
return loads(fh.read())
json loads - >は、jsonオブジェクトを表す文字列からオブジェクトを返します。
json dumps - >は、オブジェクトからjsonオブジェクトを表す文字列を返します。
ロードとダンプ - >文字列ではなくファイルへの読み書き