В вашем коде дважды есть result_list, один раз в виде пустого списка, и второй раз как объект. Вы не обновляете свой список:
results_list = response.json()['results']
Вы сохраняете это как объект, который перезаписывает ваш пустой список. Вместо этого сохраните каждое значение в переменной с именем «results», а затем добавьте его в свой список «results_list»
Попробуйте следующее:
results_list = []
for i in range (1,21):
url = "https://api.themoviedb.org/3/discover/movie?api_key=XX&primary_release_date.gte=2000-01-01&with_genres=35&sort_by=popularity.desc&page=" + str(i)
response = requests.get(url, timeout = 10)
#each page is a dictionary. we get only "results" which is a list.
#so each iteration of the loop gives us a list to work with
results = response.json()['results']
results_list.append(results)
final_list.extend(results_list)
if response.status_code != 200:
print('Failed to get data:', response.status_code)
print(results_list)