在编写任务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]
答案 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'
是从数据抓取中退回的。