如何在Python中使用循环从JSON提取元素?
我有JSON数据,数据的长度是5。我想使用循环从数据中查找名称。我尝试了下面的代码,但没有得到预期的输出:如何在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_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']]