【问题标题】:Read Json files from Azure blob using python?使用 python 从 Azure blob 读取 Json 文件?
【发布时间】:2021-06-01 06:05:53
【问题描述】:

我需要从 Azure 中的 blob 容器读取 JSON 文件,以便在 JSON 文件之上进行一些转换。我看过很少的文档和 StackOverflow 的答案,并开发了一个 python 代码来读取 blob 中的文件。

我已经从 Stackoverflow 答案之一尝试了以下脚本来读取 JSON 文件,但出现以下错误

"TypeError: JSON 对象必须是 str、bytes 或 byte 数组,而不是 BytesIO"

我是 python 编程的新手,所以不确定代码中的问题。我尝试使用 download_stream.content_as_text() 但文件没有读取文件而没有任何错误。

from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
from io import BytesIO
import requests
from pandas import json_normalize
import json

filename = "sample.json"

container_name="test"
constr = ""

blob_service_client = BlobServiceClient.from_connection_string(constr)
container_client=blob_service_client.get_container_client(container_name)
blob_client = container_client.get_blob_client(filename)
streamdownloader=blob_client.download_blob()

stream = BytesIO()
streamdownloader.download_to_stream(stream)
# with open(stream) as j:
#      contents = json.loads(j)
fileReader = json.loads(stream)

print(filereader)

【问题讨论】:

    标签: python json azure-blob-storage


    【解决方案1】:

    您可以使用readallfunction。请尝试以下代码:

    from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
    import json
    
    filename = "sample.json"
    
    container_name="test"
    constr = ""
    
    blob_service_client = BlobServiceClient.from_connection_string(constr)
    container_client = blob_service_client.get_container_client(container_name)
    blob_client = container_client.get_blob_client(filename)
    streamdownloader = blob_client.download_blob()
    
    fileReader = json.loads(streamdownloader.readall())
    print(fileReader)
    

    结果:

    【讨论】:

      猜你喜欢
      • 2021-08-26
      • 1970-01-01
      • 2021-10-05
      • 2018-07-30
      • 1970-01-01
      • 2012-06-16
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多