无列表来自何处?

时间:2018-08-16 00:29:37

标签: python python-3.x

我正在从API中获取数据,并使用requests转换JSON,然后从字典中的列表中的每个字典中提取一个值:

response = requests.get("http://api.open-notify.org/astros.json")
astros = response.json()
print(astros["number"])
[print(astronaut['name']) for astronaut in astros['people']]

输出将根据需要提供名称列表,但紧随其后的是6个None值的列表;我不明白为什么。

1 个答案:

答案 0 :(得分:5)

这些是列表理解中所有打印函数调用的返回值。

>>> x = print('hello')
hello
>>> print(x)
None

代替列表理解,只需使用常规循环即可:

for astronaut in astros['people']:
    print(astronaut['name'])

列表推导仅在您要保留实际创建的列表时使用。