>  기사  >  백엔드 개발  >  객체처럼 중첩된 Python 사전에 액세스하는 방법은 무엇입니까?

객체처럼 중첩된 Python 사전에 액세스하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-11 04:51:03708검색

How to Access Nested Python Dictionaries Like Objects?

내포된 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.