2016-12-12 255 views
-2

搜索字符串我有Python代碼:如何從列表蟒蛇

D_REGION="east" 

A_NAME="diet" 

V_ID="44" 

K_PASS="N/A" 

TRIAL_PRODUCTION="TRIAL" 

我想通過檢查來驗證這一點,如果值是TRIAL

bucket = event['Records'][0]['s3']['bucket']['name'] 
key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key'].encode('utf8')) 
try: 
    response = s3.get_object(Bucket=bucket, Key=key) 
    contents = response['Body'].read() 
    print(contents) 

像它會顯示結果或值爲PROD
然後打印整個列表,否則它將失敗。 我們如何使用python從列表中搜索字符串?

+0

您是否至少試圖自己解決問題?哦,它與'lambda'沒有任何關係,而不是http響應 - 這是純粹的字符串操作。 –

回答

2
>>> contents = '''D_REGION="east" 
... 
... A_NAME="diet" 
... 
... V_ID="44" 
... 
... K_PASS="N/A" 
... 
... TRIAL_PRODUCTION="TRIAL"''' 
>>> import re 
>>> re.search(r'TRIAL_PRODUCTION="(TRIAL|PROD)"', contents).group(1) 
'TRIAL' 
+0

你甚至不需要這個正則表達式。 –

0
>>> contents = """D_REGION="east" 
... 
... A_NAME="diet" 
... 
... V_ID="44" 
... 
... K_PASS="N/A" 
... 
... TRIAL_PRODUCTION="TRIAL" 
... """ 
>>> # couldn't be much simpler: 
>>> 'TRIAL_PRODUCTION="TRIAL"' in contents or 'TRIAL_PRODUCTION="PROD"' in contents 
True 
>>> # a bit more elegant 
>>> any(target in contents for target in ('TRIAL_PRODUCTION="TRIAL"', 'TRIAL_PRODUCTION="PROD"')) 
True 

現在來談談學習Python的(至少是最基礎的東西),您嘗試使用它之前?

+0

我想OP想知道它的兩個值中的哪一個,而不僅僅是一個或另一個。 –

+0

「我想驗證這是通過檢查值是TRIAL還是值是PROD然後打印整個列表」=>我理解這是「如果值是TRIAL_或__值是PROD然後繼續其他失敗」。但尋找一個具體的價值甚至更微不足道,並且不需要正則表達式。 –