title: ERROR: Spider must return Request, BaseItem, dict or None, got 'tuple'
body: <p>I keep getting this error.  When I attach the values to the items using this code below.  Note I didn't include the spider class, the start_requests function, or the first parse function but I don't think there is an error there as they all run fine up until this point.</p>
  
  <pre><code>from folder.items import fd
  import scrapy
  from bs4 import BeautifulSoup
  
   def parsenestedgame(self, response):
          nested_url = response.url
          nested_html = response.text
          nested_soup = BeautifulSoup(nested_html, "html.parser")
  
          odds_results = (nested_soup.find_all("button", "_32ge9K w0u0II _2D_dGb"))
          team_results = (nested_soup.find_all("span", "_2I4p8L"))
  
          sports = ["Basketball", "Hockey",
                    "Major League Baseball",
                    "Tennis", "Boxing / MMA",
                    "American Football"]
          sportsurls = ["url1", "url2",
                        "url3",
                        "url4", "url5",
                        "url6"]
          sportsdict = dict(zip(sportsurls, sports))
          for key in sportsdict:
              if key in nested_url:
                  sport = sportsdict[key]
          teams_list = []
          odds_list = []
  
          for result in odds_results:
              odds_list.append(result.text)
  
          for team in team_results:
              teams_list.append(team.text)
  
          if not teams_list:
              print(f"There were no teams found at {nested_url}.")
  
          else:
  
              game = f"{teams_list[0]} vs {teams_list[1]}"
  
              bookie_list = ["bookie1", "bookie2", "bookie3", "bookie4", "bookie5", "bookie6", "bookie7",
                             "bookie8", "bookie10", "bookie11", "bookie12", "bookie13", "bookie14",
                             "bookie15", "bookie16", "bookie17",
                             "bookie18", "bookie19"]
              if len(odds_list) == 18:
  
                  odds_list1 = [odds_list[0], odds_list[1], odds_list[2], odds_list[3], odds_list[4],
                                odds_list[5], odds_list[6],
                                odds_list[7], odds_list[8]]
                  odds_list2 = [odds_list[9], odds_list[10], odds_list[11], odds_list[12], odds_list[13],
                                odds_list[14],
                                odds_list[15], odds_list[16], odds_list[17]]
  
                  odds_list1P = [1, 2, 3, 4, 5, 6, 7, 8, 9]
                  odds_list2P = [1, 2, 3, 4, 5, 6, 7, 8, 9]
  
                  x, y = 0, 0
                  for entries1 in odds_list1:
                      if not entries1:
                          odds_list1[x] = 0
                          odds_list1P[x] = 0
                      else:
                          odds_list1[x] = int(entries1)
                          entries1 = float(entries1)
                          if entries1 &gt; 0:
                              odds_list1P[x] = ((entries1 / 100) + 1)
                          if entries1 &lt; 0:
                              odds_list1P[x] = ((100 / abs(entries1)) + 1)
                          # odds_list1P[x] = (abs(int(entries1)))/(abs(int(entries1))+100)
                      x += 1
                  for entries2 in odds_list2:
                      if not entries2:
                          odds_list2[y] = 0
                          odds_list2P[y] = 0
                      else:
                          odds_list2[y] = int(entries2)
                          entries2 = float(entries2)
                          if entries2 &gt; 0:
                              odds_list2P[y] = ((entries2 / 100) + 1)
                          if entries2 &lt; 0:
                              odds_list2P[y] = ((100 / abs(entries2)) + 1)
                          # odds_list2P[y] = (abs(int(entries2)))/(abs(int(entries2))+100)
                      y += 1
  
                  # I now have all the lists I need to pass to items
                  print(type(game))
                  print(type(teams_list[0]))
                  print(type(teams_list[1]))
                  print(type(odds_list1[0]))
                  print(type(odds_list2[0]))
                  print(type(odds_list1P[0]))
                  print(type(odds_list2P[0]))
                  print(type(bookie_list[0]))
                  print(type(sport))
  
                  fd = fd()
  
                  fd["game"] = game
  
                  fd["team1"] = teams_list[0]
  
                  fd["team2"] = teams_list[1]
  
                  fd["odds1a"] = odds_list1[0]
  
                  fd["odds2a"] = odds_list2[0]
  
                  fd["odds1d"] = odds_list1P[0]
  
                  fd["odds2d"] = odds_list2P[0]
  
                  fd["bookie"] = b_list[0]
  
                  fd["sport"] = sport
  
                  yield fd
  
  </code></pre>
  
  <p>Here is my item below.</p>
  
  <pre><code>import scrapy
  
  
  class fd(scrapy.Item):
      game = scrapy.Field()
      team1 = scrapy.Field()
      team2 = scrapy.Field()
      odds1a = scrapy.Field()
      odds2a = scrapy.Field()
      odds1d = scrapy.Field()
      odds2d = scrapy.Field()
      bookie = scrapy.Field()
      sport = scrapy.Field()
  </code></pre>
  
  <p>When I print the type out right before the above line of code you get this.</p>
  
  <p>OUTPUT</p>
  
  <pre><code>&lt;class 'str'&gt;
  &lt;class 'str'&gt;
  &lt;class 'str'&gt;
  &lt;class 'int'&gt;
  &lt;class 'int'&gt;
  &lt;class 'int'&gt;
  &lt;class 'int'&gt;
  &lt;class 'str'&gt;
  &lt;class 'str'&gt;
  2020-06-11 16:58:26 [scrapy.core.scraper] ERROR: Spider must return Request, BaseItem, dict or None, got 'tuple' in &lt;GET URL&gt;
  </code></pre>
  
  <p>I don't get it please help!  I will provide more of my code if needed.</p>