시나리오: Django 애플리케이션은 저장해야 하는 Facebook API로부터 JSON 데이터를 받습니다. 데이터베이스에서. 애플리케이션은 현재 사용자 정의 보기를 사용하여 간단한 데이터 개체를 처리하지만 복잡한 데이터 구조로 인해 어려움을 겪고 있습니다.
질문: 더 쉬운 데이터베이스 저장 및 조작을 위해 JSON 데이터를 Python 개체로 변환하려면 어떻게 해야 합니까?
JSON 데이터를 Python 객체로 변환하려면 SimpleNamespace 및 Namedtuple과 같은 특수 데이터 구조를 사용할 수 있습니다. 이러한 구조를 사용하면 JSON 데이터 키를 기반으로 속성을 동적으로 생성할 수 있습니다.
Python3에서는 SimpleNamespace를 json.loads의 object_hook과 함께 사용할 수 있습니다.
import json from types import SimpleNamespace data = '{"name": "John Smith", "hometown": {"name": "New York", "id": 123}}' # Parse JSON into an object with attributes corresponding to dict keys. x = json.loads(data, object_hook=lambda d: SimpleNamespace(**d)) print(x.name, x.hometown.name, x.hometown.id)
Python2에서는 Namedtuple을 다음과 같이 사용할 수 있습니다. 유사하게 사용:
import json from collections import namedtuple data = '{"name": "John Smith", "hometown": {"name": "New York", "id": 123}}' # Parse JSON into an object with attributes corresponding to dict keys. x = json.loads(data, object_hook=lambda d: namedtuple('X', d.keys())(*d.values())) print x.name, x.hometown.name, x.hometown.id
또는 재사용 가능한 함수를 정의하여 프로세스를 단순화할 수 있습니다.
def _json_object_hook(d): return namedtuple('X', d.keys())(*d.values()) def json2obj(data): return json.loads(data, object_hook=_json_object_hook) x = json2obj(data)
이러한 기술을 사용하면 복잡한 JSON 데이터를 Python 객체로 효율적으로 변환할 수 있습니다. 데이터베이스에 저장하고 조작하는 것이 간단해졌습니다.
위 내용은 JSON 데이터를 데이터베이스 저장을 위한 Python 개체로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!