Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで文字列をJSONに変換する方法|json.loads()の使い方を解説

PythonでJSON文字列を辞書(dict)に変換する基本

Pythonでは、標準ライブラリの json モジュールを使うことで、JSON形式の文字列を簡単に扱うことができます。文字列として渡されたJSONデータをPythonの辞書型に変換するには、json.loads() メソッドを使用します。

json.loads() は、有効なJSON文字列を受け取り、それを解析して辞書オブジェクトを返します。返された辞書には、すべての要素にキーを使ってアクセスできます。

json.loads()の使用例

>>> import json
>>> s = '{"success": "true", "status": 200, "message": "Hello"}'
>>> d = json.loads(s)
>>> print(d["success"], d["status"])
true 200

この例では、JSON形式の文字列 sjson.loads() に渡すことで、辞書 d が生成されています。その後、d["success"]d["status"] のようにキーを指定することで、各要素の値を自由に取得できます。

JSONファイルから辞書を作成する場合:json.load()

文字列ではなくJSONファイルからデータを読み込みたい場合は、json.load() メソッドを使用します。loads() との違いは、引数として「文字列」ではなく「ファイルオブジェクト」を受け取る点です。

import json

with open('data.json', 'r', encoding='utf-8') as f:
    d = json.load(f)

print(d["success"], d["status"])

このように with 文と組み合わせてファイルを開き、そのファイルオブジェクトを json.load() に渡すだけで、ファイル内のJSONデータを辞書として読み込めます。

補足:辞書をJSON文字列に戻すには

逆に、Pythonの辞書をJSON文字列に変換したい場合は、json.dumps() を使用します。

>>> import json
>>> d = {"success": "true", "status": 200}
>>> s = json.dumps(d)
>>> print(s)
{"success": "true", "status": 200}

まとめ

  • JSON文字列 → 辞書:json.loads()
  • JSONファイル → 辞書:json.load()
  • 辞書 → JSON文字列:json.dumps()

これらのメソッドを使い分けることで、PythonにおけるJSONデータの処理を柔軟かつ効率的に行えます。

  1. Pythonで文字列をバイナリ(2進数)に変換する方法をわかりやすく解説

    Pythonで文字列をバイナリに変換する基本の考え方Pythonで文字列をバイナリ(2進数)表現に変換するには、文字列内の各文字を1つずつ取り出し、それぞれを2進数へ変換したうえで、結果をひとつの文字列として連結します。各文字の文字コードは ord() 関数で取得でき、format() 関数に「b」フォーマット指定子を渡すことで、簡単に2進数形式へ整形できます。format() と ord() を使った変換方法最もシンプルなのが、format(ord(x), b) を使って各文字 x を2進数の文字列に変換する方法です。次の例では、文字列 hello world の各文字をスペース区切りのバイ

  2. 【Python】辞書形式の文字列をdict型に変換する2つの安全な方法

    はじめにPythonでは、文字列として表現された辞書(例:{foo: bar})を、実際の辞書(dict型)オブジェクトに変換したい場面がよくあります。この記事では、代表的な2つの変換方法である ast.literal_eval() と json.loads() の使い方を解説します。方法1: ast.literal_eval() を使うast.literal_eval() を使うと、文字列をPythonの式として安全に評価できます。この関数は、式ノードまたはPython式を含む文字列を評価しますが、許可されているのは文字列・数値・タプル・リスト・辞書・ブール値・Noneといったリテラル構造の