通过函数循环列表,保持返回Nonetype



所以我试图迭代这个列表techno_list1 = ["C", "C#", "C++", "Java", "JavaScript", "Python", "Scala", "Oracle", "SQL Server", "MySQL Server", "PostgreSQL", "MongoDB"]通过一个函数返回与关键字相关的作业数,下面的列表是函数:

def get_number_of_jobs(technology):
number_of_jobs = 0
page=0
new_results=1
while new_results>0:
paras={"description":technology,"page":page}
r=requests.get(baseurl,paras)
new_results=len(r.json())
page+=1
number_of_jobs+=(len(r.json()))

return technology,number_of_jobs

它返回一个元组,如下('C', 239) ('C#', 50) ('C++', 32) ('Java', 138) ('JavaScript', 116) ('Python', 98) ('Scala', 94) ('Oracle', 18) ('SQL Server', 28) ('MySQL Server', 14) ('PostgreSQL', 22) ('MongoDB', 14)所以我认为它应该是一个元组,但当使用type((进行检查时,它一直返回<class 'NoneType'>

我希望它是List或Tuple。是否有更改数据类型的方法?

好的,这是我遇到的:

techno_list1 = ["C", "C#", "C++", "Java",  "JavaScript", "Python", "Scala", "Oracle", "SQL Server", "MySQL Server", "PostgreSQL", "MongoDB"]
def number_of_each(techno_list):
for x in techno_list:
print(get_number_of_jobs(x))
print(type(number_of_each(techno_list1)))

然后结果:

('C', 239)
('C#', 50)
('C++', 32)
('Java', 138)
('JavaScript', 116)
('Python', 98)
('Scala', 94)
('Oracle', 18)
('SQL Server', 28)
('MySQL Server', 14)
('PostgreSQL', 22)
('MongoDB', 14)
<class 'NoneType'>

也许是虫子?

从您的扩展阐述中,我可以看到您正在打印number_of_each(techno_list1)的类型。

然而,该函数目前没有返回任何内容,它只是打印出您通过get_number_of_jobs()获得的值。这就是它返回<class 'NoneType'>的原因。

我会在函数number_of_each()之外创建一个列表,然后将项目添加到列表中,稍后打印出来,试试这个:

techno_list1 = ["C", "C#", "C++", "Java",  "JavaScript", "Python", "Scala", "Oracle", "SQL Server", "MySQL Server", "PostgreSQL", "MongoDB"]
job_numb = []
def number_of_each(techno_list):
for x in techno_list:
job_numb.append(get_number_of_jobs(x))
print(type(get_number_of_jobs(x))
print(job_numb)

现在打印的类型对于job_numb应该是<class 'list'>,对于返回get_number_of_jobs()job_numb中的任何项目应该是<class 'tuple'>

现实地说,这并没有真正改变任何事情。get_number_of_jobs()函数已经返回了一个元组。你只是印错了正确的变量。

最新更新