将 Azure 函数的 CSV 输出保存到 Azure 容器 (Python 3X)
Saving CSV output from Azure function to Azure container (Python 3X)
我想 运行 Azure 函数并将 CSV 输出保存到 Azure 容器。
我目前有两个代码块
- 生成 CSV 文件。
- 将 CSV 文件加载到我的容器中。
每个块都可以在我本地 PC 的 Jupyter Notebook 中运行。
但我正在努力将它们组合起来以在 Azure 函数中协同工作。所以我正在寻求帮助。
块 1(生成 CSV)
import yfinance as yf
import pandas as pd
from datetime import date
import csv
#stock names
NZX =[["Ascension Capital Limited", "ACE"],["AFC Group Holdings Limited", "AFC"],["Z Energy Limited", "ZEL"]]
today = str(date.today().isoformat())
directory = "C:\Users\Etc...\SharePrices\CSVs\"
df_list = list()
for i in NZX:
code =i[1]
name =i[0]
cmpy = f"{code}.NZ"
tickerStrings = [cmpy]
for ticker in tickerStrings:
data = yf.download(ticker, group_by="Ticker", period='1d')
data['ticker'] = ticker
df_list.append(data)
df = pd.concat(df_list)
df.to_csv(f"{directory}_{today}.csv")
区块 2
from azure.storage.blob import BlobClient
blob = BlobClient.from_connection_string(conn_str="Myconnectionstring", container_name="container1", blob_name="StevesBlob3.csv")
with open("./output.csv", "rb") as data:
blob.upload_blob(data)
谁能指出我正确的方向?我正在努力解决的当前问题
- 在尝试移动文件之前,我是否需要将文件保存在 Azure 功能的临时文件夹中,还是可以将其直接推送到容器中
- 保存 CSV 时如何引用目标 folder/container?
任何指导将不胜感激。
Azure 函数的新手。
带有生成的 CSV 文件的示例
#creates random csv in blob storage
import numpy as np
import pandas as pd
from datetime import datetime
from azure.storage.blob import ContainerClient
#Create dynamic filename
dateTimeObj = datetime.now()
timestampStr = dateTimeObj.strftime("%d%b%Y%H%M%S")
filename =f"{timestampStr}.csv"
df = pd.DataFrame(np.random.randn(5, 3), columns=['Column1','Column2','Colum3'])
df.to_csv(filename, index=False)
blob = BlobClient.from_connection_string(
conn_str="DefaultEndpointsProtocol=https;AccountName=storageaccountXXXXXXX;AccountKey=XXXXXXXXXXXXXXXX;EndpointSuffix=core.windows.net",
container_name="container2",
blob_name=filename)
with open(filename, "rb") as data:
blob.upload_blob(data)
我想 运行 Azure 函数并将 CSV 输出保存到 Azure 容器。 我目前有两个代码块
- 生成 CSV 文件。
- 将 CSV 文件加载到我的容器中。
每个块都可以在我本地 PC 的 Jupyter Notebook 中运行。
但我正在努力将它们组合起来以在 Azure 函数中协同工作。所以我正在寻求帮助。
块 1(生成 CSV)
import yfinance as yf
import pandas as pd
from datetime import date
import csv
#stock names
NZX =[["Ascension Capital Limited", "ACE"],["AFC Group Holdings Limited", "AFC"],["Z Energy Limited", "ZEL"]]
today = str(date.today().isoformat())
directory = "C:\Users\Etc...\SharePrices\CSVs\"
df_list = list()
for i in NZX:
code =i[1]
name =i[0]
cmpy = f"{code}.NZ"
tickerStrings = [cmpy]
for ticker in tickerStrings:
data = yf.download(ticker, group_by="Ticker", period='1d')
data['ticker'] = ticker
df_list.append(data)
df = pd.concat(df_list)
df.to_csv(f"{directory}_{today}.csv")
区块 2
from azure.storage.blob import BlobClient
blob = BlobClient.from_connection_string(conn_str="Myconnectionstring", container_name="container1", blob_name="StevesBlob3.csv")
with open("./output.csv", "rb") as data:
blob.upload_blob(data)
谁能指出我正确的方向?我正在努力解决的当前问题
- 在尝试移动文件之前,我是否需要将文件保存在 Azure 功能的临时文件夹中,还是可以将其直接推送到容器中
- 保存 CSV 时如何引用目标 folder/container?
任何指导将不胜感激。 Azure 函数的新手。
带有生成的 CSV 文件的示例
#creates random csv in blob storage
import numpy as np
import pandas as pd
from datetime import datetime
from azure.storage.blob import ContainerClient
#Create dynamic filename
dateTimeObj = datetime.now()
timestampStr = dateTimeObj.strftime("%d%b%Y%H%M%S")
filename =f"{timestampStr}.csv"
df = pd.DataFrame(np.random.randn(5, 3), columns=['Column1','Column2','Colum3'])
df.to_csv(filename, index=False)
blob = BlobClient.from_connection_string(
conn_str="DefaultEndpointsProtocol=https;AccountName=storageaccountXXXXXXX;AccountKey=XXXXXXXXXXXXXXXX;EndpointSuffix=core.windows.net",
container_name="container2",
blob_name=filename)
with open(filename, "rb") as data:
blob.upload_blob(data)