Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中使用循环从JSON提取元素?_Json_Python 3.x_Loops - Fatal编程技术网

如何在Python中使用循环从JSON提取元素?

如何在Python中使用循环从JSON提取元素?,json,python-3.x,loops,Json,Python 3.x,Loops,我有JSON数据,数据的长度是5。我想使用循环从数据中查找名称。我尝试了下面的代码,但没有得到预期的输出: json_data = [{'User_Info':[{'Name':'John'},{'Name':'Ashly'}, {'Name':'Herbert'}]}, {'User_Info':[{'Name':''}]}, {'User_Info':[{'Name':'Lee'},{'Name':'Patrick'},{'Name':'Herbert'}]}, {'User_Info':

我有JSON数据,数据的长度是5。我想使用循环从数据中查找名称。我尝试了下面的代码,但没有得到预期的输出:

json_data = [{'User_Info':[{'Name':'John'},{'Name':'Ashly'}, 
{'Name':'Herbert'}]},
{'User_Info':[{'Name':''}]},
{'User_Info':[{'Name':'Lee'},{'Name':'Patrick'},{'Name':'Herbert'}]},
{'User_Info':[{'Name':'Benjamine'}]}]
但是,我的预期输出应该是这样的:

names_outputs = []
for ppl in json_data:
    for i in ppl['User_Info']:
        names_outputs.append(i['Name'])

print(names_outputs)
>>['John','Ashly','Herbert','Lee','Patrick','Walter','Steve','Benjamine']

您可以使用嵌套列表来理解:

[['John','Ashly','Herbert'],[],['Lee','Patrick','Herbert'],['Walter','Steve'],['Benjamine']]
如果要消除空字符串,请使用
过滤器

>>> [[name["Name"] for name in people] for people in  [d["User_Info"] for d in json_data]]
[['John', 'Ashly', 'Herbert'], [''], ['Lee', 'Patrick', 'Herbert'], ['Benjamine']]

我们不知道JSON字符串是什么样子。请发布输入示例。请查看更新。谢谢!非常感谢你。很高兴学习嵌套列表理解!
>>> [filter(None, [name["Name"] for name in people]) for people in  [d["User_Info"] for d in json_data]]
[['John', 'Ashly', 'Herbert'], [], ['Lee', 'Patrick', 'Herbert'], ['Benjamine']]