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

Pythonの辞書をJavaScriptに渡す方法|JSONを使ったデータ変換の基本

PythonとJavaScriptでは、辞書(ディクショナリ)の内部的な表現方法が異なります。そのため、両者の間でデータを受け渡しするには、中間形式を介す必要があります。最も広く使われている中間形式がJSON(JavaScript Object Notation)です。JSONはシンプルで軽量なデータ交換フォーマットであり、言語を問わず利用できるのが特徴です。

Python側:辞書をJSON文字列に変換する

Pythonでは、jsonモジュールのdumps()関数を使うことで、辞書オブジェクトをJSON形式の文字列に変換できます。

コード例

import json

my_dict = {
    'foo': 42,
    'bar': {
        'baz': "Hello",
        'poo': 124.2
    }
}

my_json = json.dumps(my_dict)
print(my_json)

出力結果

'{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}'

dumps()は「dump string」の略で、Pythonのオブジェクトを文字列として出力します。ネストした構造もそのまま変換される点がポイントです。

Python側:JSON文字列を辞書に戻す

逆に、受け取ったJSON文字列をPythonの辞書に復元したい場合は、loads()関数を使用します。

コード例

import json

my_str = '{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}'

my_dict = json.loads(my_str)
print(my_dict['bar']['baz'])

出力結果

Hello

loads()は「load string」の略です。文字列を解析して元の辞書構造を再現するため、ネストされた値にも通常の辞書と同じ方法でアクセスできます。

JavaScript側での扱い方

JavaScript側では特別な処理はほとんど不要です。そもそもJSONとは「JavaScript Object Notation」の略であり、JavaScriptのオブジェクト記法そのものだからです。

  • オブジェクトとして直接受け取った場合: そのままJavaScriptのオブジェクトとして利用できます。
  • 文字列として受け取った場合: JSON.parse()メソッドを使ってオブジェクトに変換します。

コード例

const jsonString = '{"foo": 42, "bar": {"baz": "Hello", "poo": 124.2}}';
const obj = JSON.parse(jsonString);

console.log(obj.bar.baz); // Hello

まとめ

PythonとJavaScriptの間でデータをやり取りする際は、以下の手順が基本となります。

  1. Python側:json.dumps()で辞書をJSON文字列に変換
  2. 通信:JSON文字列として送受信(APIやファイル経由など)
  3. JavaScript側:必要に応じてJSON.parse()でオブジェクト化

この流れを押さえておけば、異なる言語間でも安全かつ効率的にデータを受け渡しできます。

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

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

  2. Python関数で辞書を返す方法とは?基本の書き方とサンプルコード

    Pythonでは、関数から辞書(dict)を返す方法がいくつかあります。ここでは、最も基本的なパターンを中心に、具体的なサンプルコードとともに分かりやすく解説します。 基本の方法:dict()で辞書を作成してreturnする まずは、関数内でdict()コンストラクタを使って空の辞書を生成し、キーと値を追加したうえでreturn文で返す方法です。 # この関数は辞書を返します def foo(): d = dict() d[str] = Tutorialspoint d[x] = 50 return d print(foo()) 実行結果 {x: 50,