【问题标题】:Function works when passing a string, but when trying to pass multiple strings stored in a list, it does not work函数在传递字符串时有效,但在尝试传递存储在列表中的多个字符串时,它不起作用
【发布时间】:2021-04-26 22:06:13
【问题描述】:

我有下面的代码,它定义了一个包含一个字符串的列表和函数。这可以正常工作并返回我需要的数据

a = ["REQ-ETH"]

def klines_func(a):
    for i in a:
        klines = client.get_kline_data(a, '5min', 1507479171, 1510278278)
    return klines

但是,将 a 更改为 ["REQ-ETH","REQ-BTC"] 时,代码不起作用(导致 API 异常错误,但单独尝试 "REQ-BTC" 对时,代码也可以正常工作)。


---------------------------------------------------------------------------
KucoinAPIException                        Traceback (most recent call last)
<ipython-input-34-2cf04cd53d1c> in <module>
----> 1 klines_func(a)

<ipython-input-26-45a04a1bad02> in klines_func(a)
      1 def klines_func(a):
      2     for i in a:
----> 3         klines = client.get_kline_data(a, '5min', 1507479171, 1510278278)
      4     return klines

/opt/anaconda3/lib/python3.8/site-packages/kucoin/client.py in get_kline_data(self, symbol, kline_type, start, end)
   1833             data['endAt'] = int(time.time())
   1834 
-> 1835         return self._get('market/candles', False, data=data)
   1836 
   1837     # Websocket Endpoints

/opt/anaconda3/lib/python3.8/site-packages/kucoin/client.py in _get(self, path, signed, **kwargs)
    185 
    186     def _get(self, path, signed=False, **kwargs):
--> 187         return self._request('get', path, signed, **kwargs)
    188 
    189     def _post(self, path, signed=False, **kwargs):

/opt/anaconda3/lib/python3.8/site-packages/kucoin/client.py in _request(self, method, path, signed, **kwargs)
    156 
    157         response = getattr(self.session, method)(uri, **kwargs)
--> 158         return self._handle_response(response)
    159 
    160     @staticmethod

/opt/anaconda3/lib/python3.8/site-packages/kucoin/client.py in _handle_response(response)
    171 
    172             if 'code' in res and res['code'] != "200000":
--> 173                 raise KucoinAPIException(response)
    174 
    175             if 'success' in res and not res['success']:

KucoinAPIException: KucoinAPIException 400100: This pair is not provided at present.

本质上,这适用于一个字符串,但是当尝试使用 for 循环和多个字符串进行迭代时,它不起作用。我对 Python 很陌生,但感谢任何支持!

【问题讨论】:

  • " 代码不起作用(导致 API 异常错误" 这不是对问题的充分描述。Show us exactly what goes wrong
  • python-kucoin.readthedocs.io/en/latest/… 说它接受一个字符串作为参数
  • 嗨,卡尔,我已经复制了错误。 “目前没有提供这对”。但是,数据在单独查询时可用(当 a 的代码更改为 a = ["REQ-BTC"] 时,查询工作正常)。当将列表传递给参数时,它似乎只是抛出一个错误。 API 文档需要该参数的字符串,但我想一次传递多个字符串,但不确定最好的方法是什么;所以我列出了一份清单
  • client.get_kline_data(a, '5min', 1507479171, 1510278278) 中使用i 而不是a 会更正确吗?我猜你需要对每个字符串调用一次函数(i,而不是a),然后将结果附加到列表中并返回。

标签: python string list function


【解决方案1】:

如果client.get_kline_data 需要一个单个 字符串,那么您希望在循环中使用参数i 而不是a 调用此函数。

在您当前的循环中,您使用的不是i,而是a,因此您实际上尝试使用整个列表多次调用API函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-19
    • 2017-02-27
    • 2017-10-03
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    相关资源
    最近更新 更多