所以我试图迭代这个列表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()
函数已经返回了一个元组。你只是印错了正确的变量。