以下代碼連接到AWS S3存儲桶並從S3存儲桶返回對象列表。我試圖通過選擇對象的部分值(即batchID = str((s3_file.name).split("/"))[32:-13])
。我已經聲明「batchID」爲一個數組)來創建一個獨特的列表,當我使用set()返回唯一值時,它返回唯一的數字每個值。例如:['1', '0', '3', '2', '5', '4', '9', '8’], ['1', '0', '3', '2', '5', '4', '7', '9', '8’]
等等。所以它是在列表中垂直去重的。我期望值是唯一的。見下面預期的輸出。我也嘗試使用嵌套的「for循環」,並使用「不」在」返回獨特價值,但它沒有工作,但它仍然是垂直而不是水平刪除重複任何人都可以請幫助預先感謝您如何從AWS S3存儲桶獲取唯一對象列表
def __init__(self, aws_access_key_id, aws_secret_access_key, aws_bucket_to_download, use_ssl):
self.run_id = []
self.batchID = []
self._aws_connection = S3Connection(aws_access_key_id, aws_secret_access_key, is_secure = use_ssl)
self._runId(aws_bucket_to_download)
def _runId(self,aws_bucket_to_download):
if not self._bucketExists(aws_bucket_to_download):
self._printBucketNotFoundMessage(aws_bucket_to_download)
else:
bucket = self._aws_connection.get_bucket(aws_bucket_to_download)
for s3_file in bucket.list(prefix='Download/test_queue1/'):
batchID = str((s3_file.name).split("/"))[32:-13]
#a = set(batchID)
#batchID = list(a)
print batchID
#newList = list(set(batchID))
#print newList`
輸出:。 144019080231459 144019080231459 144019800231759 144019800231759
預期輸出: 144019080231459 144019800231759
謝謝你的幫助。有效!! – Guddi
@Guddi不客氣。如果您有一分鐘,請將其標記爲已接受的答案,以便人們知道問題已得到解答。 – jarmod