无法让循环工作

时间:2017-12-18 16:55:09

标签: python python-3.x coinbase-api

目前正在使用python3

我试图创建一个功能来提取加密货币的价格并将它们发送到我的手机。我成功地下载了所有内容并为比特币工作,但我字典中的其他货币都没有正确拉动。任何帮助将不胜感激。

client = Client(api_key = 'insert coinbase api key', api_secret='insert coinbase api secret', api_version = '2017-12-13')   


def buyPrice():
    priceDict ={ 'BTC-USD': '', 'ETH-USD': '', 'LTC-USD': ''}
    for key in priceDict:
        if priceDict[key] == '':
            current_price = client.get_buy_price(currency_pair =priceDict[key])
            priceDict[key] = current_price['amount']
        else:
            continue
    return priceDict
buyPrice()

ex输出:

{'BTC-USD': '18897.59', 'ETH-USD': '18897.59', 'LTC-USD': '18897.59'}

2 个答案:

答案 0 :(得分:1)

根据您提供的内容,我相信您应该这样做

client.get_buy_price(currency_pair = key)

而不是

client.get_buy_price(currency_pair = priceDict[key])

在为参数currency_pair提供密钥的值时,而不是名称。

正如我的评论中所述,您应该按照以下步骤迭代您的键和值(这是更正后的版本)。

def buyPrice():
    priceDict ={ 'BTC-USD': '', 'ETH-USD': '', 'LTC-USD': ''}
    for key, value in priceDict.items():
        if value == '':
            current_price = client.get_buy_price(currency_pair = key)
            value = current_price['amount']
        else:
            continue
    return priceDict

答案 1 :(得分:-3)

这应该是你的迭代方法 for key in priceDict.keys():

我还建议您使用if priceDict.get(key)因为它不仅速度更快,而且有时会阻止KeyError例外