检查JSON格式字典中的值

时间:2019-04-06 12:45:00

标签: python json dictionary

我正在尝试检查给定的字符串(“ Sample1”)是否在此词典的“文本”字段内。我在做什么错了?

var = {'data': [{'text': 'Sample1',
                  'descriptionMoreURL': 'https://sample1.com',
                  'description': 'this is sample1',
                  'type': 'text'},
                 {'text': 'Sample2',
                  'descriptionMoreURL': 'https://sample2.com',
                  'description': 'this is sample2',
                  'type': 'text'}
                 ]}

print('Sample1' in var['data'])

例如,在这段代码中,我希望输出为True。同样,如果将字符串“ Sample1”替换为“ Sample2”,它也会返回True。

2 个答案:

答案 0 :(得分:0)

您检查的级别比所需的级别高。 'Sample1'var['data']中不作为键存在,但在较低的嵌套字典中确实存在。

您可以在此处使用any()来检查每个字典的'Sample1'值中是否存在'text'

>>> any(d['text'] == 'Sample1' for d in var['data'] for k in d)
True
>> any(d['text'] == 'Sample2' for d in var['data'] for k in d)
True

答案 1 :(得分:-1)

print(var ['data']中的'Sample1')按照字典[{},{},{}]

的顺序检查您的字符串

尝试一些可以做的事情:

for el in var['data']:
   print('Sample1' in el.values())