连接或扩展字典列表覆盖到最后一个列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接或扩展字典列表覆盖到最后一个列表相关的知识,希望对你有一定的参考价值。
我的for循环下拉每个迭代中的字典列表。我试图扩展final_list与我在每次迭代中得到的所有列表。但是当我打印final_list时,它只是给我上一次迭代的列表。换句话说,它几乎像所有以前的列表一样被覆盖。尝试了一切,但没有任何作用。有人能指出我的代码可能有什么问题吗?
for i in range (1,21):
results_list = []
final_list = []
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_list = response.json()['results']
final_list.extend(results_list)
if response.status_code != 200:
print('Failed to get data:', response.status_code)
print(final_list)
答案
你的代码中有results_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)
以上是关于连接或扩展字典列表覆盖到最后一个列表的主要内容,如果未能解决你的问题,请参考以下文章