Как проверить, содержит ли значение dict значение слова/строки?

У меня есть простое условие, когда мне нужно проверить, содержит ли значение dict значение [Complted] в определенном ключе.

пример:

'Events': [
                {
                    'Code': 'instance-reboot'|'system-reboot'|'system-maintenance'|'instance-retirement'|'instance-stop',
                    'Description': 'string',
                    'NotBefore': datetime(2015, 1, 1),
                    'NotAfter': datetime(2015, 1, 1)
                },
            ],

Мне нужно проверить, содержит ли ключ Description [Complted] в нем при запуске. iee

'Descripton': '[Completed] Экземпляр работает на деградированных аппаратное обеспечение

Как я могу это сделать? Я ищу что-то вроде

if inst ['Events'][0]['Code'] == "instance-stop":
      if inst ['Events'][0]['Description'] consists   '[Completed]":
              print "Nothing to do here"
4
05 июля '16 в 9:50
источник поделиться
4 ответов

Это должно сработать. Вы должны использовать in вместо consists. В python ничего не называется consists.

"ab" in "abc"
#=> True

"abxyz" in "abcdf"
#=> False

Итак, в вашем коде:

if inst['Events'][0]['Code'] == "instance-stop":
      if '[Completed]' in inst['Events'][0]['Description']
          # the string [Completed] is present
          print "Nothing to do here"

Надеюсь, это поможет:)

1
05 июля '16 в 9:55
источник

Увидев, что ключ 'Events' имеет список словарей в качестве значения, вы можете перебирать все из них вместо жесткого кодирования индекса.

Кроме того, inst ['Events'][0]['Code'] == "instance-stop": не будет истинным в примере, который вы указали.

Попробуйте сделать это следующим образом:

for key in inst['Events']:
    if 'instance-stop' in key['Code'] and '[Completed]' in key['Description']:
        # do something here
1
05 июля '16 в 9:56
источник

Я также нашел, что это работает

   elif inst ['Events'][0]['Code'] == "instance-stop":
                        if "[Completed]" in inst['Events'][0]['Description']:
                            print "Nothing to do here"
1
05 июля '16 в 9:55
источник
for row in inst['Events']:
    if ( "instance-stop" in row['Code'].split('|')) and ((row['Descripton'].split(' '))[0] == '[Completed]'):
        print "dO what you want !"
0
05 июля '16 в 9:55
источник

Посмотрите другие вопросы по меткам или Задайте вопрос