Django データベース ストレージ用に JSON データを Python オブジェクトに変換する
Django アプリケーションには、次の処理が必要な Facebook API からの JSON データがあります。データベースに保存されます。現在、変換を手動で処理していますが、複雑なデータ構造の場合、煩雑で非効率的になる可能性があります。
幸いなことに、JSON の object_hook 引数を使用して JSON データを Python オブジェクトに変換することで、このプロセスを簡素化し、高速化する方法があります。 .
Python 3 ソリューション
Python 3 を使用すると、JSON データを辞書キーに対応する属性を持つオブジェクトにエレガントに変換できます:
import json from types import SimpleNamespace data = '{"name": "John Smith", "hometown": {"name": "New York", "id": 123}}' x = json.loads(data, object_hook=lambda d: SimpleNamespace(**d))
これは、name、hometown.name、hometown.id の属性を持つオブジェクトを返します。
Python 2 のソリューション
Python 2 の場合、namedtuple と object_hook を使用できます。 :
import json from collections import namedtuple data = '{"name": "John Smith", "hometown": {"name": "New York", "id": 123}}' x = json.loads(data, object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))
Python 3 ソリューションの x と同じ属性を持つオブジェクトを返します。
JSON をオブジェクトに変換する利点
JSON データを Python オブジェクトに変換すると、次の利点が得られます。
以上が効率的な Django データベース ストレージのために JSON データを Python オブジェクトに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。