用語比較
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冊です。読んだ章は、このサイトの章別問題で確かめられます。
どこで迷っているかを切り分ける
dump()とdumps()のどちらを書くか迷う人
結果を文字列で受け取って確かめたいならdumps()、ファイルに保存したいならdump()です。
シリアライズとデシリアライズの言葉が曖昧な人
チュートリアル7.2.2は、Pythonのデータ階層を取り、文字列表現に変換する処理をシリアライズ、文字列表現からデータを再構築する処理をデシリアライズと呼んでいます。
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
結果の行き先を決める
文字列で受け取るなら、dumps()です。ファイルに保存するなら、dump()です。
- 2
引数を確かめる
dump()にはオブジェクトに加えて、書き込み用に開いたテキストファイルを渡します。
- 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)の引数の順序を説明できる
- シリアライズとデシリアライズの意味を言い分けられる
関連ページで確認する
同じ資格で次に知りたいこと
- イテレータとジェネレータの違い|クラスで書くか、yieldで書くか(Python3基礎)
イテレータとジェネレータの違いを、書き方と自動で作られるものの差で整理します。Python公式チュートリアル9.8〜9.10の記述、__iter__()・__next__()・StopIterationの扱い、ジェネレータ式との関係、確認問題つき。
- open()のモード 'w' と 'a' の違い|上書きか、末尾に追加か(Python3基礎)
open()のモード 'w' と 'a' の違いを、既存ファイルの扱いで整理します。Python公式チュートリアル7.2の記述、'r'・'r+'との対応、省略時のモード、確認問題つき。
- isinstance()とissubclass()の違い|調べる対象はインスタンスか、クラスか(Python3基礎)
isinstance()とissubclass()の違いを、第1引数がインスタンスかクラスかで整理します。Python公式チュートリアル9.5の記述、issubclass(bool, int)がTrueでissubclass(float, int)がFalseになる理由、確認問題つき。
よくある質問
Qjson.dumps()とは?
オブジェクトのJSON形式の文字列表現を返す関数です。json.dumps([1, 'simple', 'list'])は '[1, "simple", "list"]' になります。
Qjson.dump()とは?
オブジェクトをテキストファイルにシリアライズする関数です。json.dump(x, f)のように、書き込み用に開いたファイルを渡します。
Qdump()とdumps()の違いは?
結果の行き先です。dumps()はJSON形式の文字列表現を返し、dump()はテキストファイルに書き込みます。
QPython3基礎試験の範囲?
公式の出題範囲は公式チュートリアルの章単位で、第7章の入力と出力と、7.2.2のjsonによるデータの保存を含みます。出題の形式は受験前に公式の案内で確認してください。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: ミナト編集部(運営者情報を見る)
