gpt4 book ai didi

python - 将缓冲的 csv 从 pandas 直接上传到 azure blob 存储

转载 作者:行者123 更新时间:2023-12-03 05:36:00 25 4
gpt4 key购买 nike

我有一个数据框,想要上传到 Azure Blob 存储。

我正在使用 azure-storage-blob v12.3.2

from io import BytesIO, StringIO
from azure.storage.blob import BlobServiceClient

service_client = BlobServiceClient.from_connection_string('connection_string')
container_client = service_client.get_container_client('container_name')

output = StringIO()
df.to_csv(output)
container_client.upload_blob(name='output.csv', data=output)

此代码段不起作用,因为 upload_blob 需要像 BytesIO 这样的字节,但我无法将 BytesIO 传递给 to_csv 因为它需要一个 StringIO

如何将缓冲的 CSV 直接上传到 Azure Blob 存储?

---- 编辑 ----

我找到了这个解决方案:

df.to_csv(output)
output.seek(0)
bio = BytesIO(output.read().encode('utf8'))
container_client.upload_blob(name='output.csv', data=bio)

如果有更好的方法,我会采用。

最佳答案

关于该问题,请引用以下代码

# create data
head = ["col1" , "col2" , "col3"]
value = [[1 , 2 , 3],[4,5,6] , [8 , 7 , 9]]
df = pd.DataFrame (value, columns = head)
output = df.to_csv (index=False, encoding = "utf-8")
print(output)

connection_string=''
# Instantiate a new BlobServiceClient using a connection string
blob_service_client = BlobServiceClient.from_connection_string(connection_string)
# Instantiate a new ContainerClient
container_client = blob_service_client.get_container_client('mycsv')
# Instantiate a new BlobClient
blob_client = container_client.get_blob_client("output.csv")
# upload data
blob_client.upload_blob(output, blob_type="BlockBlob")

enter image description here

关于python - 将缓冲的 csv 从 pandas 直接上传到 azure blob 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62556758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com