我刚刚启动了一个Python包,用于直接从bureauofeconomicanalysis(BEA)的dataapi访问数据。我有两个高级抽象:Request
和Results
。Request
对象继承自dict
,并使用请求库访问数据
import requests
class Request(dict):
_response = None
base_url = 'http://www.bea.gov/api/data'
def __init__(self, UserID, Method, ResultFormat='JSON', **params):
required_params = {'UserID': UserID,
'Method': Method,
'ResultFormat': ResultFormat}
required_params.update(params)
super(Request, self).__init__(**required_params)
@property
def response(self):
if self._response is None:
self._response = requests.get(url=self.base_url, params=self)
return self._response
因为下载数据可能很耗时,所以我正在缓存response属性。我当前的实现从不刷新缓存。如果字典的任何值发生更改或被添加/删除,我想刷新缓存。有什么想法
只需重写相关的映射方法
相关问题 更多 >
编程相关推荐