我想在python文件中存储一些值,如blew 这是我的abc.py文件
{
21:"This field is required",
22:"Value can't be null",
23:"other custom message",
}
然后我想从python函数中的给定字符串计算代码。 例如:
def calculate_code(error_message):
#process error_message and read data from abc.py file
#calculate error_code
return eror_code
就好像我有error_message ="值不能为空"然后我会得到error_code = 22。
最好的方法是什么?
答案 0 :(得分:1)
一个明智的解决方案是从消息到错误代码定义缓存类(基于字典)。这不是一个完整的解决方案,但这提供了一个框架:
从datetime导入日期时间 来自os import stat 进口时间
class Cache(object):
def __init__(self, filename):
self._filename = filename
self._populate_cache()
def __getitem__(self, name):
if self._check_file_updated():
self._populate_cache()
return self._cache[name]
def _populate_cache(self):
self._populate_time = time.mktime(datetime.now().timetuple())
self._cache = read_file_as_dict(self._filename)
print "debug: updated cache"
def _check_file_updated(self):
return stat(self._filename).st_mtime > self._populate_time
def read_file_as_dict(filename):
# needs an implementation: just simulating
return { "Blown up": 25, "Warning": 31 }
用法:
cache = Cache("test")
>>> cache["Blown up"]
25
>>> cache["Blown up"]
25
现在我触摸"测试"文件:
>>> cache["Blown up"]
debug: updated cache
25