从Azure blob读取excel数据,并使用Python Azure函数将其转换为csv
我想使用以下功能部署azure功能从Azure blob读取excel数据,并使用Python Azure函数将其转换为csv,python,azure,io,Python,Azure,Io,我想使用以下功能部署azure功能 将excel数据从Azure blob读取到流对象中,而不是下载到VM上 读入数据帧 我需要帮助才能将excel文件读入数据框。如何更新放置的持有者下载文件路径以读取excel数据 如果您想使用panda从Azure blob读取excel文件,您有两个选择 为blob生成SAS令牌,然后使用blob URL和SAS令牌访问它 下载blob 如果您想使用panda从Azure blob读取excel文件,您有两个选择 为blob生成SAS令牌,然后使用blo
如果您想使用panda从Azure blob读取excel文件,您有两个选择
如果您想使用panda从Azure blob读取excel文件,您有两个选择
您能告诉我您尝试了什么吗?我编写了脚本将blob(Excel)下载到本地,并使用pandas将数据读取到dataframe中。从数据框中,数据被推送到csv文件中。此csv文件将上载到blob。当部署到Azure函数中时,它会失败。我不是下载,而是尝试从blob中流式传输数据,并将其推送到数据帧中。它在
打开时失败(下载文件路径,“rb”)
它找不到资源。你能告诉我你尝试了什么吗?我编写了脚本将blob(Excel)下载到本地,并使用pandas将数据读取到dataframe中。从数据框中,数据被推送到csv文件中。此csv文件将上载到blob。当部署到Azure函数中时,它会失败。我不是下载,而是尝试从blob中流式传输数据,并将其推送到数据帧中。它在打开时失败(下载文件路径,“rb”)
它无法找到resource@VenkatSuryaSunilmodekurthy既然它对你有用,你能帮我吗?它可能会帮助更多有类似问题的人。这是非常有帮助的,并且起到了作用。Thanks@VenkatSuryaSunilmodekurthy既然它对你有用,你能接受它作为一个答案吗:?我们如何上传一个blob格式的excel文件?@mas你可以参考@VenkatSuryasUnileModeKurthy,因为它对你有用,你能吗?它可能会帮助更多有类似问题的人。这是非常有帮助的,并且起到了作用。Thanks@VenkatSuryaSunilmodekurthy既然它对您很有用,您能否接受它作为一个答案:?我们如何在blob中上载excel文件?@mas您可以参考
import pandas as pd
import os
import io
from azure.storage.blob import BlobClient,BlobServiceClient,ContentSettings
connectionstring="XXXXXXXXXXXXXXXX"
excelcontainer = "excelcontainer"
excelblobname="Resource.xlsx"
sheet ="Resource"
blob_service_client =BlobServiceClient.from_connection_string(connectionstring)
download_file_path =os.path.join(excelcontainer)
blob_client = blob_service_client.get_blob_client(container=excelcontainer, blob=excelblobname)
with open(download_file_path, "rb") as f:
data_bytes = f.read()
df =pd.read_excel(data_bytes, sheet_name=sheet, encoding = "utf-16")
from datetime import datetime, timedelta
import pandas as pd
from azure.storage.blob import BlobSasPermissions, generate_blob_sas
def main(req: func.HttpRequest) -> func.HttpResponse:
account_name = 'andyprivate'
account_key = 'h4pP1fe76*****A=='
container_name = 'test'
blob_name="sample.xlsx"
sas=generate_blob_sas(
account_name=account_name,
container_name=container_name,
blob_name=blob_name,
account_key=account_key,
permission=BlobSasPermissions(read=True),
expiry=datetime.utcnow() + timedelta(hours=1)
)
blob_url = f'https://{account_name}.blob.core.windows.net/{container_name}/{blob_name}?{sas}'
df=pd.read_excel(blob_url)
print(df)
......
from azure.storage.blob import BlobServiceClient
def main(req: func.HttpRequest) -> func.HttpResponse:
account_name = 'andyprivate'
account_key = 'h4pP1f****='
blob_service_client = BlobServiceClient(account_url=f'https://{account_name }.blob.core.windows.net/', credential=account_key)
blob_client = blob_service_client.get_blob_client(container='test', blob='sample.xlsx')
downloader =blob_client.download_blob()
df=pd.read_excel(downloader.readall())
print(df)
....