无法让循环工作

问题描述 投票:-1回答:2

目前正在使用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()

输出:

{'BTC-USD': '18897.59', 'ETH-USD': '18897.59', 'LTC-USD': '18897.59'}
python python-3.x coinbase-api
2个回答
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

-3
投票

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

我还建议你使用if priceDict.get(key),因为它不仅会更快,但它有时会阻止KeyError异常

© www.soinside.com 2019 - 2024. All rights reserved.