python 从 azure 存储帐户读取
Posted
技术标签:
【中文标题】python 从 azure 存储帐户读取【英文标题】:python read from azure storage account 【发布时间】:2021-10-20 16:19:56 【问题描述】:很难读取存储在存储容器中的 .csv 文件。我有这些详细信息供容器访问:“Blob SAS 令牌”和“Blob SAS URL”
我一直在提到this、this,但他们不使用“Blob SAS 令牌”或“Blob SAS URL”
有人可以帮助编写一个可以将数据作为数据框读取的 python 代码吗?
【问题讨论】:
您好,如果我的回复对您有所帮助,请将其标记为答案,以便社区知道此问题已关闭。 【参考方案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 ***.com/questions/56961005/…可以参考这个问题/答案***.com/questions/50014827/… 我没有帐户名或密钥,我只有 blob sas url。我不希望下载到本地机器并上传到存储容器 查看我上面修改后的答案。如果这回答了您的问题,请将其标记为答案。以上是关于python 从 azure 存储帐户读取的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Azure Functions 中的存储容器读取多个文件
如何使用 Python 获取 Azure 的所有存储帐户名称及其访问密钥
从 ASP.NET 应用程序访问 Azure 存储帐户文件共享