Python

為命令行 API 儲存數據的方法

  • November 9, 2014

我正在為虛擬機開發 Unix 環境中的 API。我必須將一些資訊儲存在有關虛擬機的表中。

目前我正在使用虛擬機對象的python字典並將其儲存在pickle中。

我想知道將數據儲存在命令行 API 中的其他最佳方法(如果有的話)。任何建議都會有所幫助。

對於其他人使用的應用程序,您可能不應該使用 pickle,因為它不會保存從不受信任的來源載入 pickle 數據(或者,您必須 100% 確保在寫入和讀取之間無法更改磁碟上的 pickle 數據)。

如果數據需要使用者修改,你應該看看使用YAML寫出來。Python 實現可通過PyYAML獲得,但具有更好可讀輸出的發射器將是pyaml

替代方案是JSON和更多工作 XML。

所有這些都需要您將內部類型轉換為儲存格式支持的類型(字典/映射、列表、原始類型(整數、字元串、布爾值))。

YAML 還支持使用者定義的類型,與 pickle 的 Python 數據具有相同的安全問題,但至少允許一些安全載入,這是 pickle 不支持的。YAML 通過顯式使用者類型在更改源佈局(重命名模組、移動類)後載入數據的問題更少,就像您在 pickle 中所經歷的那樣。

引用自:https://unix.stackexchange.com/questions/166941