AI資格ドリル
資格を選ぶ↓

用語比較

json.dump()とjson.dumps()の違い|ファイルに書くか、文字列で受け取るか(Python3基礎)

json.dump()とjson.dumps()は、どちらもPythonのオブジェクトをJSONにするための関数です。違いは、結果の行き先です。dumps()はJSON形式の文字列表現を見せてくれ、dump()はオブジェクトをテキストファイルにシリアライズします。文字列ならdumps、ファイルならdumpと覚えると、読み分けやすくなります。

Python公式チュートリアル7.2.2は、オブジェクトxのJSON形式の文字列表現を見るには、json.dumps(x)の1行でよいと説明しています。x = [1, 'simple', 'list'] のとき、結果は '[1, "simple", "list"]' です。dumps()に似た関数としてdump()があり、f が書き込み用に開かれたテキストファイルなら、json.dump(x, f) と書きます。

Python3エンジニア認定基礎試験は、公式チュートリアルの内容を章ごとの出題率で出題する形で、第7章の入力と出力も範囲です。この記事では、チュートリアルの例を使って、2つの関数の出力先と、読み込み側のjson.load()との対応を確認します。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。Python3エンジニア認定基礎試験の一次情報確認日: 2026-09-18。

結論

json.dumps(x)

オブジェクトxのJSON形式の文字列表現を返す。例:json.dumps([1, 'simple', 'list']) は '[1, "simple", "list"]'。

json.dump(x, f)

オブジェクトxを、書き込み用に開いたテキストファイルfにシリアライズする。

違いを表で確認

比較軸json.dumps(x)json.dump(x, f)
結果の行き先JSON形式の文字列表現(文字列として得られる)テキストファイル(ファイルオブジェクトfに書き込む)
引数json.dumps(x):オブジェクトのみjson.dump(x, f):オブジェクトと、書き込み用に開いたテキストファイル
チュートリアルの例x = [1, 'simple', 'list'] のとき '[1, "simple", "list"]'f が書き込み用に開かれたテキストファイルのとき json.dump(x, f)
ファイルに書く役割ファイルには書かない(文字列として受け取る)ファイルに書く。読み込むときは、json.load(f)でデシリアライズする

Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)

試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。

PR

ほかの資格を含む参考書・問題集の一覧を見る

どこで迷っているかを切り分ける

01

dump()とdumps()のどちらを書くか迷う人

結果を文字列で受け取って確かめたいならdumps()、ファイルに保存したいならdump()です。

02

シリアライズとデシリアライズの言葉が曖昧な人

チュートリアル7.2.2は、Pythonのデータ階層を取り、文字列表現に変換する処理をシリアライズ、文字列表現からデータを再構築する処理をデシリアライズと呼んでいます。

03

pickleとの違いが気になる人

チュートリアルは参考として、pickleはPythonに固有のプロトコルで、他の言語のアプリケーションとの通信には使えず、デフォルトでは安全でないと説明しています。

具体例で使い分ける

例 1

チュートリアル7.2.2の json.dumps と json.dump の例

x = [1, 'simple', 'list'] というリストを、JSONにします。

  • json.dumps(x)は、xのJSON形式の文字列表現を返します。結果は '[1, "simple", "list"]' で、シングルクォートの 'simple' がダブルクォートの "simple" になっています。
  • f が書き込み用に開かれたテキストファイルなら、json.dump(x, f) でxがそのファイルにシリアライズされます。
  • 読み込むときは、f が読み込み用に開かれたバイナリファイルまたはテキストファイルなら、x = json.load(f) でデシリアライズします。

結論: 文字列として見たいときはdumps()、ファイルへ書きたいときはdump()、ファイルから読むときはload()です。

問題文から答えを選ぶ手順

  1. 1

    結果の行き先を決める

    文字列で受け取るなら、dumps()です。ファイルに保存するなら、dump()です。

  2. 2

    引数を確かめる

    dump()にはオブジェクトに加えて、書き込み用に開いたテキストファイルを渡します。

  3. 3

    読み込みを確かめる

    ファイルから戻すときは、json.load(f)を使います。

試験での見分け方

  • 1json.dumps(x)は、xのJSON形式の文字列表現を返す。
  • 2json.dump(x, f)は、xをテキストファイルfにシリアライズする。
  • 3json.load(f)は、読み込み用に開かれたバイナリファイルまたはテキストファイルからデシリアライズする。
  • 4JSONファイルは、テキストファイルのデフォルトのエンコーディングであるUTF-8でエンコードする必要がある。

誤答しやすい選択肢

dump()の第1引数にファイルを渡す

修正: json.dump(x, f)の第1引数は変換するオブジェクトxで、ファイルfは第2引数です。

dumps()の結果が、ファイルに書かれると考える

修正: dumps()はJSON形式の文字列表現を返すだけです。ファイルに書くのはdump()です。

シリアライズとデシリアライズを逆に覚える

修正: データを文字列表現に変換するのがシリアライズ、文字列表現からデータを再構築するのがデシリアライズです。

確認問題

Q1オブジェクトのJSON形式の文字列表現を返す関数は?

答え: json.dumps()

チュートリアル7.2.2が、dumps()でxのJSON形式の文字列表現を見られると説明しています。

Q2オブジェクトをテキストファイルにシリアライズする関数は?

答え: json.dump()

チュートリアル7.2.2が、dump()は単純にオブジェクトをテキストファイルにシリアライズすると説明しています。

Q3json.dumps([1, 'simple', 'list']) の結果は?

答え: '[1, "simple", "list"]'

チュートリアル7.2.2の例です。要素の文字列はダブルクォートで囲まれます。

到達チェック

  • dumps()が文字列、dump()がファイルへ出力する関数だと言い分けられる
  • json.dump(x, f)の引数の順序を説明できる
  • シリアライズとデシリアライズの意味を言い分けられる

同じ資格で次に知りたいこと

よくある質問

Qjson.dumps()とは?

A

オブジェクトのJSON形式の文字列表現を返す関数です。json.dumps([1, 'simple', 'list'])は '[1, "simple", "list"]' になります。

Qjson.dump()とは?

A

オブジェクトをテキストファイルにシリアライズする関数です。json.dump(x, f)のように、書き込み用に開いたファイルを渡します。

Qdump()とdumps()の違いは?

A

結果の行き先です。dumps()はJSON形式の文字列表現を返し、dump()はテキストファイルに書き込みます。

QPython3基礎試験の範囲?

A

公式の出題範囲は公式チュートリアルの章単位で、第7章の入力と出力と、7.2.2のjsonによるデータの保存を含みます。出題の形式は受験前に公式の案内で確認してください。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)