运行Main时出现KeyError

时间:2020-05-07 12:10:14

标签: python python-3.x

在编写任务1的最后一部分时遇到一个问题,我总是最终得到KeyError: "DEF"。我不确定是否错过了一步,或者我做错了什么。感谢您的帮助

如果有人知道问题可能在哪里,我附上了代码和遇到的问题的片段。

主要

if name == "main":
    for _ in range(N):
        quotes = json.loads(urllib.request.urlopen(QUERY.format(random.random())).read())
        prices = {}
        for quote in quotes:
            stock, bid_price, ask_price, price = getDataPoint(quote)
            prices[stock] = price
            print ("Quoted %s at (bid:%s, ask:%s, price:%s)" % (stock, bid_price, ask_price, price))
        print ("Ratio %s" % (getRatio(prices['ABC'],prices['DEF'])))[enter image description here][1]

1 个答案:

答案 0 :(得分:0)

分配给var str = [{"id":"5","name":"Test 1","ends":"2020-05-07 10:00"},{"id":"6","name":"Test 2","ends":"2020-03-29 12:33"},{"id":"8","name":"Test 3","ends":"2020-08-29 12:33"}]; var exclude = [5,8]; var today = new Date().getTime(); var filterDate = str.filter(function(el){ var otherDate = new Date(el.ends).getTime(); return !Object.keys(el).some(k => el['id'].toLowerCase().includes(exclude)) && (otherDate > today) }) console.log("filterDate", filterDate); 词典的唯一键是prices值。

在您的最终打印电话中,您尝试访问密钥(股票)stock的价格(价格)。

您的错误:'DEF'告诉您没有称为KeyError: "DEF".的股票,所以Python没什么可做的!

因此,您需要决定如何解决此问题-可能要先查看'DEF',然后再检查库存'DEF'是从数据抓取中退回的。