我正在寫一個Django視圖,有時從數據庫獲取數據,有時從外部API獲取數據。Python:你如何可以互換地訪問一個對象或字典?
當它來自數據庫時,它是一個Django模型實例。屬性必須用點符號來訪問。
來自API,數據是一個字典,並通過下標符號訪問。
無論哪種情況,都會對數據進行一些處理。
我想避免
if from_DB:
item.image_url='http://example.com/{0}'.format(item.image_id)
else:
item['image_url']='http://example.com/{0}'.format(item['image_id'])
我試圖找到一個更優雅的,乾的方式來做到這一點。
有沒有一種方法可以通過對字典或對象起作用的鍵進行設置?
剛剛看過它的源代碼,這是我簡單的'AttrDict'(提供正確的'AttributeError'而不是'KeyError',提供'__repr__'和'__delattr__'並提供遞歸轉換方法)。我懷疑我自己是否曾經發現它......「Bunch」似乎是一個相當不具描述性的名字。 – 2010-11-21 12:41:31
感謝您瞭解/發現本課程,這真的很有幫助。 – JAL 2010-11-22 02:09:31