我正在使用cryptowatch的SDK https://github.com/cryptowatch/cw-sdk-python进行API调用。我尝试检索的数据存储为对象的属性。根据时间范围,此属性的名称有所不同。
例如如果我们要请求每日比特币数据(“ 1d ”时间范围),则可以通过调用object属性来检索它,如下所示:object.of_ 1d
如果我们需要每周的比特币数据(“ 1w ”时间范围),则可以通过调用object属性来检索它,如下所示:object.of_ 1w
我正在尝试编写一个函数,该函数根据您指定为参数的时间段来调用市场数据,如下所示:
def get_price_action(exchange, market, timeframe):
candles=cw.markets.get("{}:{}".format(exchange, market)
, ohlc=True
, periods=["{}".format(timeframe)])
#need to access attribute based on timeframe here:
df = pd.DataFrame(candles.of_'{}'.format(timeframe))
return df
因此,当我调用get_price_action('KRAKEN','BTC:USD','1h')时,它将在kraken交易所中检索比特币/美元的所有小时价格数据。
但是在尝试检索属性时遇到语法错误。
有人可以帮助我找到一种方法来传递属性名称作为参数吗?
谢谢
答案 0 :(得分:1)
使用getattr
内置函数。
df = pd.DataFrame(getattr(candles, 'of_{}'.format(timeframe)))