【问题标题】:python read from azure storage accountpython 从 azure 存储帐户读取
【发布时间】:2021-10-20 16:19:56
【问题描述】:

很难读取存储在存储容器中的 .csv 文件。我有这些详细信息供容器访问:“Blob SAS 令牌”和“Blob SAS URL”

我一直在提到thisthis,但他们不使用“Blob SAS 令牌”或“Blob SAS URL”

有人可以帮助编写一个可以将数据作为数据框读取的 python 代码吗?

【问题讨论】:

  • 您好,如果我的回复对您有所帮助,请将其标记为答案,以便社区知道此问题已关闭。

标签: python azure azure-storage azure-blob-storage azure-data-lake


【解决方案1】:

如果您查看文档HERE,它会显示如何使用 sas url 创建 BlobClient。一旦你有了这个,你可以按照你分享的LINK中的说明进行操作。

您的最终代码将如下所示。

from azure.storage.blob import BlobClient
import pandas as pd
from io import StringIO

sas_url = "<your_blob_sas url>"
blob_client = BlobClient.from_blob_url(sas_url)
blob_data = blob_client.download_blob()
df = pd.read_csv(StringIO(blob_data.content_as_text()))
print(df)

要将数据框上传到容器,可以尝试以下代码

from azure.storage.blob import ContainerClient

sas_url = "https://<acct_name>.blob.core.windows.net/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
container = ContainerClient.from_container_url(sas_url)

output = io.StringIO()
head = ["col1" , "col2" , "col3"]
l = [[1 , 2 , 3],[4,5,6] , [8 , 7 , 9]]
df = pd.DataFrame (l , columns = head)
print(df)
output = df.to_csv (index_label="idx", encoding = "utf-8")

blob_client = container_client.upload_blob(name="myblob", data=output)

【讨论】:

  • 以上对读取数据很有帮助。您还可以帮助我将数据帧上传到带有 blob sas url 的容器吗(我确实拥有所有权限)
  • 您将需要使用 Blobblock 服务。你可以参考this question how to get that stackoverflow.com/questions/56961005/…可以参考这个问题/答案stackoverflow.com/questions/50014827/…
  • 我没有帐户名或密钥,我只有 blob sas url。我不希望下载到本地机器并上传到存储容器
  • 查看我上面修改后的答案。如果这回答了您的问题,请将其标记为答案。
猜你喜欢
  • 1970-01-01
  • 2018-10-09
  • 2015-05-13
  • 1970-01-01
  • 2021-04-19
  • 1970-01-01
  • 2020-10-04
  • 2017-05-09
  • 1970-01-01
相关资源
最近更新 更多