내포된 Python 사전을 객체로 변환하는 방법
편의를 위해 중첩된 Python 사전이 포함된 사전에 대한 속성 액세스를 사용하여 데이터에 액세스하는 것이 바람직합니다. JavaScript의 객체 구문과 유사한 사전 및 목록. 예를 들어:
d = {'a': 1, 'b': {'c': 2}, 'd': ["hi", {'foo': "bar"}]}
이 데이터는 다음과 같이 액세스할 수 있어야 합니다.
x = dict2obj(d) x.a 1 x.b.c 2 x.d[1].foo bar
이러한 함수를 작성하려면 재귀가 필요합니다. 다음은 사전에 대해 객체와 유사한 기능을 달성하기 위한 접근 방식입니다:
class Struct: def __init__(self, **entries): self.__dict__.update(entries)
사용법:
args = {'a': 1, 'b': 2} s = Struct(**args) s.a 1 s.b 2
대체 솔루션: Namedtuples
Python의 경우 버전 2.6 이상인 경우 namedtuple 데이터 구조:
from collections import namedtuple MyStruct = namedtuple('MyStruct', 'a b d') s = MyStruct(a=1, b={'c': 2}, d=['hi'])
이제 필드에 대한 속성 액세스가 있는 객체처럼 동작하는 명명된 튜플이 생겼습니다. 이는 간결하고 읽기 쉬운 솔루션을 제공합니다.
위 내용은 객체처럼 중첩된 Python 사전에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!