首頁 >後端開發 >Python教學 >如何將嵌套的 Python 字典轉換為類似物件的結構以進行基於屬性的資料檢索?

如何將嵌套的 Python 字典轉換為類似物件的結構以進行基於屬性的資料檢索?

DDD
DDD原創
2024-11-11 08:50:021040瀏覽

How can I convert a nested Python dictionary into an object-like structure for attribute-based data retrieval?

將巢狀Python 字典轉換為物件

存取器方法提供了一種從複雜資料結構中擷取資料的便利方法,允許直覺的物件導向導航。然而,Python 原生字典本身就缺乏此功能。

問題:我們如何將嵌套的 Python 字典轉換為類似物件的結構,從而實現基於屬性的資料檢索?

答案:

使用Namedtuples(Python 2.6 及更高版本)

對於較新版本的Phon(226.及更高版本),namedtuples 提供優雅的解決方案。這些表示具有命名欄位的不可變自訂資料類型:

from collections import namedtuple

MyStruct = namedtuple('MyStruct', 'a b d')
s = MyStruct(a=1, b={'c': 2}, d=['hi'])

print(s.a, s.b['c'], s.d[0])
# Output: 1 2 hi

使用自訂結構類別

或者,您可以建立模仿下列行為的自訂定義結構類別:物件:

class Struct:
    def __init__(self, **entries):
        self.__dict__.update(entries)

args = {'a': 1, 'b': 2}
s = Struct(**args)

print(s.a, s.b)
# Output: 1 2

以上是如何將嵌套的 Python 字典轉換為類似物件的結構以進行基於屬性的資料檢索?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn