首页 > 解决方案 > 为什么我的 for 循环只遍历 1 个块 blob,即使 blob 容器中有 2 个?

问题描述

嗨,我是编程新手,并且一直在使用 azure-storage-blob 和 python 来完成我一直在从事的项目。我试图从 blob 路径中获取特定索引,以便可以将其包含在变量中并稍后在 csv 文件中使用它,但是当我尝试遍历 blob 时,它只返回 1 个块 blob 而不是 2 个。关于为什么会这样或我的代码有什么问题的任何想法?

def read_proces_blobcontainer(): 
    blob_list = container_client.list_blobs()
    for blob in blob_list: 
        blobname = blob.name 
        path_elements = blobname.split("/")
        projectcode = (path_elements[0])
    print('Projectcode', projectcode)

read_proces_blobcontainer()

输出如下: Projectcode 00000

这些是我试图从中提取数据的容器中的 blob:

我正在尝试迭代的 Blob

标签: pythonazure-blob-storage

解决方案


帕梅拉·彭。

这是我用于删除我最初拥有的列表中的任何重复项的代码。我提取了文件路径的名称,将它们拆分并将它们转储到一个空列表中。之后你可以用 list(set(your_list)) 清理它

def create_list():
blob_list = container_client.list_blobs()
the_list = []
for blob in blob_list:
    blobname = blob.name
    path_elements = blobname.split("/")
    projectcode = (path_elements[0])
    the_list.append(projectcode)
    #this function below gives you a list back without the duplicates
    the_list = list(set(the_list))
return(the_list)

推荐阅读