[英]Saving and Retrieving Python object Attributes values to a file
我需要完成2件事。
首先,獲取
request
對象並將對象屬性值作為某些已知鍵的值保存到文件中。 保存后此文件需要可編輯,即用戶可以修改鍵的值(因此我使用json格式)。 這在功能save_auth_params_to_file()
處理。其次,以一種我可以使用鍵檢索值的格式獲取文件內容。 這在
get_auth_params_from_file
函數中處理。
import json
import os
SUCCESS_AUTH_PARAM_FILE = '/auth/success_auth_params.json'
def save_auth_params_to_file(request):
auth_params = {}
if request is not None:
auth_params['token'] = request.token
auth_params['auth_url'] = request.auth_url
auth_params['server_cert'] = request.server_cert
auth_params['local_key'] = request.local_key
auth_params['local_cert'] = request.local_cert
auth_params['timeout'] = request.timeout_secs
with open(SUCCESS_AUTH_PARAM_FILE, 'w') as fout:
json.dump(auth_params, fout, indent=4)
def get_auth_params_from_file():
auth_params = {}
if os.path.exists(SUCCESS_AUTH_PARAM_FILE):
with open(SUCCESS_AUTH_PARAM_FILE, "r") as fin:
auth_params = json.load(fin)
return auth_params
題:
有沒有更多的pythonic方式來實現兩件事?
我忽略了代碼中的任何潛在問題?
我必須注意任何錯誤情況嗎?
有一些事情要注意,是的:
i)當由於某種原因您的request
為None
,您正在將一個空的JSON對象保存到您的文件中。 也許只在request
不是None
才想寫入文件?
auth_params = {}
if request is not None:
auth_params['token'] = request.token
auth_params['auth_url'] = request.auth_url
auth_params['server_cert'] = request.server_cert
auth_params['local_key'] = request.local_key
auth_params['local_cert'] = request.local_cert
auth_params['timeout'] = request.timeout_secs
with open(SUCCESS_AUTH_PARAM_FILE, 'w') as fout:
json.dump(auth_params, fout, indent=4)
ii)為什么不立即創建字典?
auth_params = {
'token': request.token,
'auth_url': request.auth_url,
'server_cert': request.server_cert,
'local_key': request.local_key,
'local_cert': request.local_cert,
'timeout': request.timeout,
}
iii)確保此文件位於具有SAFE權限的SAFE位置。 這是敏感數據,就像與身份驗證相關的任何數據一樣。
iv)每次save_auth_params_to_file
您都將覆蓋文件。 也許您的意思是將JSON附加到文件而不是覆蓋? 如果是這樣的話:
with open(SUCCESS_AUTH_PARAM_FILE, 'a') as fout:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.