Создание и загрузка CSV-файла в хранилище BLOB-объектов Azure с помощью Python

Я пытаюсь создать файл csv с помощью python, а затем загрузить этот файл в хранилище BLOB-объектов Azure. Я могу создать файл csv, эта часть работает нормально, но когда я пытаюсь загрузить файл в blob:

blob.upload_blob(data=df.to_csv("capacity.csv",index=False))

Я получаю сообщение об ошибке:

Traceback (most recent call last):
  File ".\blob.py", line 94, in <module>
    blob.upload_blob(data=df.to_csv("data.csv",index=False))
  File "C:\Python38\lib\site-packages\azure\core\tracing\decorator.py", line 83, in wrapper_use_tracer    return func(*args, **kwargs)
  File "C:\Python38\lib\site-packages\azure\storage\blob\_blob_client.py", line 489, in upload_blob   
    options = self._upload_blob_options(
  File "C:\Python38\lib\site-packages\azure\storage\blob\_blob_client.py", line 332, in _upload_blob_options
    raise TypeError("Unsupported data type: {}".format(type(data)))
TypeError: Unsupported data type: <class 'NoneType'>

После этого я попытался загрузить какой-нибудь локальный CSV-файл, просто чтобы проверить, работает ли он:

with open(path_to_file, "rb") as data:
   blob.upload_blob( data=data)

И это сработало. Я не уверен, что вызывает эту ошибку, я потратил некоторое время на поиск решения, но у меня ничего не работает.


person Nenad    schedule 13.07.2020    source источник


Ответы (1)


Вы снова конвертируете .csv-File в CSV:

blob.upload_blob(data=df.to_csv("capacity.csv",index=False))
                                 ^

Но вы должны преобразовать свой DataFrame в csv:

blob.upload_blob(data=df.to_csv(index=False))
                                
person Jonas    schedule 13.07.2020
comment
Спасибо, брат, ты мне очень помог. Ваше предложение не устранило мою проблему, но вы заставили меня еще раз просмотреть документацию, и я понял. Правильный подход: blob.upload_blob (data = df.to_csv (index = False)) - person Nenad; 15.07.2020
comment
Рад слышать! Я исправил это в решении выше. - person Jonas; 15.07.2020