簡體   English   中英

使用字典字典來存儲常量

[英]Using a dictionary of dictionaries to store constants

我目前正在使用Python制作一個Web應用程序。 它將包含並使用許多關於幾件事情的不變數據。 這些數據將在不同程度上用於大多數應用程序。

我最初的計划是將這些數據放在一個包含所有其他變化數據的數據庫中,但對我來說這似乎是過度的,並且是一個潛在的和不必要的阻塞點(因為在大多數頁面加載時,將以多種方式/以各種組合查詢相同的數據/相互作用)。

我已經重寫了它,以便數據現在存儲在幾個字典詞典中(即在內存中),基本上是常量,通過函數從中訪問數據。 數據看起來有點像這樣:

{
    0: {
           'some_key': 'some_value',
           'another_key': 'another_value',
           ...
    },
    ...
}

這個內存有效嗎? 有沒有更多嘗試和真實/ pythonic /只是更好(在速度,內存使用等方面)做這種事情的方式? 使用數據庫實際上是最好的方法嗎?

這種方法沒有什么特別的錯誤,但我會注意到一些問題:

  1. 為什么嵌套字典? 為什么不是平坦的字典,甚至是充滿變量的模塊?

  2. 如果這些是“對象”數據,為什么不將它們存儲在實際對象中呢? 同樣,這些可以存在於模塊或dict中的變量中。

  3. 您的Web框架可能已經有針對此特定問題的解決方案。

這似乎是存儲參考數據的一種非常明智的方式,只要您有足夠的內存來存儲您需要的數據。 我同意這應該比從數據庫中讀取更快,因為數據已經存儲在內存中並進行排序以便有效訪問。

如果您不想將這些數據實際存儲在源代碼中,您可以將其存儲在json文件中( json.dump ()將其寫入文件並將json.load()讀回來)。 但是你想在應用程序啟動時將它讀入內存,然后將其保存在內存中,而不是每次都返回到文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM