0

这段代码的作用是获取 json.loads 文件的值。它给了我一个按日期组织的字典列表。这段代码有效,我的理解是,我正在使用字典列表中的第一个值,所以是第一个字典,但不应该。self.get_jsonparsed_data(self.ticker_text.get().upper())[0]也可以工作?就我而言,它没有,我希望有人能解释为什么我不工作。

def get_jsonparsed_data(self, ticker):
    #quote
    url = (f"https://financialmodelingprep.com/api/v3/quote/{ticker}?)


    response = urlopen(url)
    data = response.read().decode("utf-8")
    return json.loads(data)

def search_info(self):
    #self.info.delete(0, END)

    recent_filing = []

    for header in self.get_jsonparsed_data(self.ticker_text.get().upper())[:1]:
        recent_filing.append(header)

    ticker = self.ticker_text.get()

    #output dictionary values with proper format
    try:
        recent_filing_dict = recent_filing[0]

这行得通。我得到了我想要的第一本字典,但是当我这样做self.get_jsonparsed_data(self.ticker_text.get().upper())[0]而不是self.get_jsonparsed_data(self.ticker_text.get().upper())[:1]它给我一个错误

这几乎是说没有任何值附加到recent_filing_dict。我只是希望有人能解释为什么?

4

1 回答 1

0

"for" 循环遍历可迭代对象,并且self.get_jsonparsed_data(self.ticker_text.get().upper())[0] 看似返回一个项目而不是可迭代对象(列表),同时self.get_jsonparsed_data(self.ticker_text.get().upper())[:1] 返回一个可迭代对象(单个项目列表),该对象由 for 循环迭代

于 2020-12-22T06:43:54.617 回答