【问题标题】:Reading Azure blob to pandas df getting following error can only concatenate str (not "tuple") to str?将Azure blob读取到pandas df得到以下错误只能将str(不是“tuple”)连接到str?
【发布时间】:2020-06-29 12:06:04
【问题描述】:

尝试将 azure blob 数据 csv 文件读入 pandas 数据帧。不知道为什么我得到 以下错误

My code
from azure.storage.blob import BlobClient

account_url="https://example.windows.net"
container_name="container1"
blob_name="name"
credential="abcdefh"
local_file_name="downloads"

#connect to blob          
blob_service = BlockBlobService(
    account_name=account_url, account_key=account_key)

#This line producing error
blob_service.get_blob_to_path(container_name,blob_name,local_file_name)

#Read csv load to df
data = pd.read_csv(LOCALFILE)

【问题讨论】:

  • 关于这个问题的任何更新?

标签: python pandas machine-learning blob azure-blob-storage


【解决方案1】:

我想在下面做。

SDK (12.0.0)

from azure.storage.blob import BlobClient

blob = BlobClient(account_url="https://<account_name>.blob.core.windows.net"
                  container_name="<container_name>",
                  blob_name="<blob_name>",
                  credential="<account_key>")

with open("example.csv", "wb") as f:
    data = blob.download_blob()
    data.readinto(f)

【讨论】:

    【解决方案2】:

    这是我使用azure.storage.blob v2.1 的测试代码。假设你的问题是get_blob_to_path方法需要file_path参数,你可以检查方法定义:

    get_blob_to_path(
                self, container_name, blob_name, file_path, open_mode='wb',
                snapshot=None, start_range=None, end_range=None,
                validate_content=False, progress_callback=None,
                max_connections=2, lease_id=None, if_modified_since=None,
                if_unmodified_since=None, if_match=None, 
                if_none_match=None, timeout=None, cpk=None)
    

        import os
        from azure.storage.blob import BlockBlobService
        import pandas as pd
    
        connect_str='account connection string'
        block_blob_service  = BlockBlobService(connection_string=connect_str)
        container_name = 'test'
        blob_name='test.csv'
        local_file_name = blob_name
    
        full_path_to_file = os.path.join("E:\project\pystorage", local_file_name)
        block_blob_service.get_blob_to_path(container_name, local_file_name,full_path_to_file)
        df=pd.read_csv(full_path_to_file)
        print(df)
    

    【讨论】:

      猜你喜欢
      • 2022-11-01
      • 2022-06-11
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-07
      • 2020-09-18
      相关资源
      最近更新 更多