I’m iterating a dataframe with the following code:
print(access_df)
Out:
ActionAccess Arn
0 s3:* a--...
1 xray:PutTele b--...
2 s3:*MultipartUpload* c--...
3 xray:GetSamplingTargets d--...
for index, row in access_df.iterrows():
if 's3:*' in row['ActionAccess']:
print(row)
I’m trying to get values that are only s3:*. However the above code also detects cases such as s3:*Object and s3:*MultipartUpload*.
How do I define the if statement to only get values that contain only s3:*?
Advertisement
Answer
Not sure if I really understand the question, but if you just want to check whether the string is literally 's3:*', i.e. the * is not supposed to be some kind of placeholder/wildcard, just use ==:
if 's3:*' == row['ActionAccess']:
If you are looking for 's3:*' (but not 's3:*stuff*') as part of a larger string, e.g. "some string with s3:* inside", then you might use str.split or resort to a regular expression.