2015-02-25 2 views
1

Вот мой код:Как узнать, установлено ли что-то (переменная)?

for msg in mbox: 
     try: 
      pprint.pprint(msg._headers, stream = f) 
      tempdate = parser.parse(msg['Date']) 
      newdate = str(tempdate)[:19] 
      ip = msg['x-originating-ip'] 
      iplookup = (ip.strip("[]")) 
      url = 'http://freegeoip.net/json/{}'.format(iplookup) 
      response = urllib.request.urlopen(url).read() 
      result = json.loads(response.decode('utf8')) 
      f.write ('Country = ' + (result['country_name']) + '\n') 
      f.write ('Region = ' + (result['region_name']) + '\n') 
      f.write ('City = ' + (result['city']) + '\n') 

Однако, не все электронные письма originiting IP. как я могу проверить, установлен ли x orginiting ip? Что-то вроде IF staement

 ip = msg['x-originating-ip'] 

     if (isset(ip): 
      iplookup = (ip.strip("[]")) 
      url = 'http://freegeoip.net/json/{}'.format(iplookup) 
      response = urllib.request.urlopen(url).read() 
      result = json.loads(response.decode('utf8')) 
      f.write ('Country = ' + (result['country_name']) + '\n') 
      f.write ('Region = ' + (result['region_name']) + '\n') 
      f.write ('City = ' + (result['city']) + '\n') 
     else: 
      continue 

То пример я думал, но функция Исеть от PHP, не Python? Есть идеи?

+0

set означает, что оно имеет ненулевое значение или его «нет»? – Nilesh

+0

Нет. Здесь пусто. –

ответ

1

Попробуйте

if 'x-originating-ip' in msg: 
    ... 

Он использует inoperator. Он проверяет только, задан ли ключ, а не то, что это значение, поэтому он все равно может быть None или False или пустую строку или список или что-то в этом роде. Вы также можете использовать 'foo' not in x вместо not 'foo' in x.

Если вы хотите, чтобы проверить, что это не None в то же время, например, использовать вместо get():

if msg.get('x-originating-ip') is not None: 
    ... 
0

Вы можете проверить значение x-originating-ip устанавливается или не используя GET.

ip = msg.get('x-originating-ip') 
if ip: 
    ... 
    .... 
Смежные вопросы