2016-05-25 4 views
1

Я использую код действия Zapier с питоном, чтобы попытаться извлечь имя из этого следующее сообщение:Попытка импортировать строку с помощью питона в Zapier

_id: 57455fc20913b2f400c2671d 
actions: [] 
authorId: 0d0e129c5913b613a49531b9 
name: Tiny Meerkat 
received: 1464164290.1 
role: appUser 
source: {u'type': u'web'} 
text: Hello 

Используя этот код:

import re 
name = re.search('(?<=name:)(.*?)(?=received)', input['messages']) 
return { 
    'name': name if name else 'empty' 
} 

Возвращаемое значение всегда пусто. У кого-нибудь есть идеи, почему?

ответ

0

Вы можете использовать этот

name = re.search('(?s)(?<=name:)(.*?)(?=received)', x).group(1).strip("\n\r ") 
        <-->         <------> 
     Allows . to match new line  Returns content of first captured group 

Вы должны использовать (?s), потому что строка разделяется в разных строках. Используя (?s), . соответствует новой строке.

+0

Это здорово, спасибо! –