我需要搜索此json文件并仅打印具有Y状态的人员
[[{"Name": "person1", "Status": "Y"}], [{"Name": "person2", "Status": "N"}], [{"Name": "person3", "Status": "Y"}]]
我可以打开文件并显示数据,但需要在其中搜索。 有人可以帮我完成这个if语句吗? 它需要查看关键值?状态并仅打印两个人Y
for name in OpenFile:
**# if Status == Y what do I do here? :**
print ("Name : " +name[i]['Name'])
print ("Status : " +name[i]['Status'])
答案 0 :(得分:0)
您需要遍历列表,从中提取字典并检查密钥'状态':
for element in OpenFile:
ele = element[0] # grab the dict
if ele.get('Status') == 'Y':
print 'Name: {}'.format(ele.get('Name')
print 'Status: {}'.format(ele.get('Status')
您的OpenFile
对象是一个列表列表,它位于其dict结构中。
因此,您希望解决列表中的第一个对象(即dict),然后执行检查。您可以使用ele.get()
答案 1 :(得分:0)
看起来你正在引用[i],而name
是你的迭代器。把它改成这样的东西:
for name in OpenFile:
**# if Status == Y what do I do here? :**
print ("Name : " +name['Name'])
print ("Status : " +name['Status'])
同时,您的json格式化数据看起来像这样:
List[list[dict],list[dict],list[dict],]
所以只有这样导航到Name
值才有意义:
print(OpenFile[0][0]['Name'])
尝试返回person1,然后将下一个if语句作为基础。
其他调试工具 使用type()来标识json的格式:
type(OpenFile)
type(OpenFile[0])
type(OpenFile[0][0])
等,使用错误来弄清楚你的json是如何格式化的