簡體   English   中英

發送逗號分隔列表到 CoinMarketCap API 進行價格轉換

[英]Send comma separated list to CoinMarketCap API for price conversion

誰能告訴我如何將逗號分隔的資產列表發送到 CoinMarketCap 以進行價格轉換?

以下代碼適用於單個資產。 他們在指南中指示您可以:

'傳遞最多 120 個逗號分隔的法定貨幣或加密貨幣符號以將源金額轉換為' https://coinmarketcap.com/api/documentation/v1/#operation/getV2ToolsPriceconversion

我找不到發送列表的方法,該列表不是:

  1. 以 400 響應拒絕。
  2. 為列表中的每個項目發送一個單獨的呼叫(並使用信用)

他們的指南通常建議您可以發送逗號分隔的列表並接收列表中多個項目的結果,僅使用一個 API CALL 和 ONLY 1 CREDIT。

這適用於單個符號,但不適用於他們建議的逗號分隔列表:

from requests import Session from requests.exceptions import ConnectionError、Timeout、TooManyRedirects

def 美元價格(資產):

url = 'https://pro-api.coinmarketcap.com/v2/tools/price-conversion'

parameters = {

    'amount' : 1,
    'symbol': assets,
    'convert' : 'USD'
    }

headers = {
'Accepts': 'application/json',
'X-CMC_PRO_API_KEY': cmcKey,
}

session = Session()
session.headers.update(headers)

try:

    response = session.get(url, params=parameters)
    print(response)
    data = response.json().get("data")
    print(data)

except (ConnectionError, Timeout, TooManyRedirects) as e:
    
    print(e)

assets = ['BTC','XRP','LTC'] usdPrice(資產)

請注意,這也不是解決方案:

它為列表中的每個項目發送一個調用,並為每個項目使用一個信用點。

def 美元價格(資產):

url = 'https://pro-api.coinmarketcap.com/v2/tools/price-conversion'

for i in assets:

    parameters = {

        'amount' : 1,
        'symbol': i,
        'convert' : 'USD'
        }
    
    headers = {
    'Accepts': 'application/json',
    'X-CMC_PRO_API_KEY': cmcKey,
    }

    session = Session()
    session.headers.update(headers)

    try:

        response = session.get(url, params=parameters)
        print(response)
        data = response.json().get("data")
        print(data)

    except (ConnectionError, Timeout, TooManyRedirects) as e:
        
        print(e)

assets = ['BTC','XRP','LTC'] usdPrice(資產)

您正在嘗試將 FROM MANY 轉換為 USD。 列表輸入僅對轉換一個到多個有效。

換句話說:您的“符號”參數(源)不允許是列表,但“轉換”(目標)是。

請參閱 API 文檔中的查詢參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM