Чтение Azure blob в pandas df при получении следующей ошибки может только объединить str (не "tuple") в str? - PullRequest
0 голосов
/ 18 марта 2020

Попытка чтения azure файлов BLOB-объектов данных в формате 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)

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Вот мой тестовый код с 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)

enter image description here

1 голос
/ 18 марта 2020

Я хотел бы сделать, как показано ниже.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...