ホームページ >バックエンド開発 >Python チュートリアル >Pythonで辞書とJSONの間で変換する方法は何ですか?

Pythonで辞書とJSONの間で変換する方法は何ですか?

WBOY
WBOYオリジナル
2023-10-18 10:30:111742ブラウズ

Pythonで辞書とJSONの間で変換する方法は何ですか?

Python における辞書と JSON の相互変換方法は何ですか?

非常に一般的に使用されるデータ構造として、辞書は Python で広く使用されています。 JSON (JavaScript Object Notation) は、軽量のデータ交換形式として、ネットワーク データの送信と保存にも広く使用されています。 Python では、辞書と JSON 間の変換は一般的な操作です。この記事では、一般的に使用されるいくつかの方法を紹介し、対応するコード例を添付します。

方法 1: json モジュールの dumps() 関数とloads() 関数を使用する

json モジュールは、JSON データを処理するために使用される Python 標準ライブラリのモジュールです。このうち、dumps() 関数は Python オブジェクトを JSON 文字列に変換するために使用され、loads() 関数は JSON 文字列を Python オブジェクトに変換するために使用されます。

次は、辞書を JSON 文字列に変換し、JSON 文字列を辞書に戻す例です。

import json

# 将字典转换为JSON字符串
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
json_str = json.dumps(my_dict)

print(json_str)  # 输出:{"name": "Tom", "age": 20, "gender": "male"}

# 将JSON字符串转换为字典
new_dict = json.loads(json_str)

print(new_dict)  # 输出:{'name': 'Tom', 'age': 20, 'gender': 'male'}

方法 2: dump() 関数とload() を使用します。 json モジュール Function

上記の dumps() 関数とloads() 関数に加えて、json モジュールには、Python オブジェクトをファイルに直接書き込む、またはファイルから読み取るための dump() 関数とload() 関数も提供されます。ファイル.JSON データを取得します。

次は、辞書を JSON ファイルに書き込み、JSON ファイルから辞書を読み取る例です。

import json

# 将字典写入JSON文件
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
with open('data.json', 'w') as f:
    json.dump(my_dict, f)

# 从JSON文件中读取字典
with open('data.json', 'r') as f:
    new_dict = json.load(f)

print(new_dict)  # 输出:{'name': 'Tom', 'age': 20, 'gender': 'male'}

方法 3: json.JSONEncoder クラスと json.JSONDecoder クラスを使用します。 json モジュールのサブクラス

上記の関数メソッドに加えて、json.JSONEncoder クラスと json.JSONDecoder クラスのサブクラスをカスタマイズすることで、辞書と JSON 間の変換を実装することもできます。これら 2 つのクラスを継承し、関連するメソッドをオーバーライドすることで、辞書の変換動作をカスタマイズできます。

以下は、辞書と JSON の間で変換するために、JSONEncoder クラスと JSONDecoder クラスのサブクラスをカスタマイズする例です:

import json

class MyEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, dict):
            return json.JSONEncoder.default(self, obj)
        return obj.__dict__

class MyDecoder(json.JSONDecoder):
    def __init__(self):
        json.JSONDecoder.__init__(self, object_hook=self.dict_to_object)

    def dict_to_object(self, d):
        if '__class__' in d:
            class_name = d.pop('__class__')
            module_name = d.pop('__module__')
            module = __import__(module_name)
            class_ = getattr(module, class_name)
            args = dict((key, value) for key, value in d.items())
            instance = class_(**args)
        else:
            instance = d
        return instance

# 将字典转换为JSON字符串
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
json_str = json.dumps(my_dict, cls=MyEncoder)

print(json_str)  # 输出:{"name": "Tom", "age": 20, "gender": "male"}

# 将JSON字符串转换为字典
new_dict = json.loads(json_str, cls=MyDecoder)

print(new_dict)  # 输出:{'name': 'Tom', 'age': 20, 'gender': 'male'}

上記は、Python 辞書を実装するために一般的に使用されるいくつかのメソッドです。 。実際のニーズに応じて、辞書と JSON 間のデータ変換を簡単に処理できる適切なメソッドを選択してください。

以上がPythonで辞書とJSONの間で変換する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。