如何读取并打印Azure Blob存储容器内的文件内容
问题原因
你当前代码中使用的with open('clients.json')语法仅能读取本地磁盘上的同名文件,并没有调用Azure SDK接口读取Blob存储容器内的clients.json文件内容,所以无法获取到云上的文件数据。
修正后的可用代码
import os, uuid, json from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__ from config import config, store try: print("Azure Blob Storage v" + __version__ + " - Python quickstart sample") configConnectionString = config blob_service_client = BlobServiceClient.from_connection_string(configConnectionString) container_client = blob_service_client.get_container_client(store) # 读取容器内的clients.json文件 blob_client = container_client.get_blob_client("clients.json") # 下载blob内容为字节流,转成字符串后加载为JSON格式 blob_content = blob_client.download_blob().readall() data = json.loads(blob_content) print(data) except Exception as ex: print('Exception:') print(ex)
补充说明
- 如果JSON文件体积较大,可以改用流式下载避免占用过多内存,直接迭代
download_blob()返回的对象即可 - 如果需要将文件下载到本地磁盘保存,可以调用
blob_client.download_blob().readinto()写入本地文件对象
内容的提问来源于stack exchange,提问作者noobdev123
相关产品推荐
相关产品推荐

