使用python创建并将csv文件上传到Azure Blob存储

时间:2020-07-13 16:52:18

标签: python azure azure-storage-blobs azure-sdk-python

我正在尝试使用python创建csv文件,而不是将该文件上传到Azure Blob存储。我能够创建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)

它奏效了。 我不确定是什么原因导致了此错误,我花了一些时间寻找解决方案,但没有任何帮助。

1 个答案:

答案 0 :(得分:0)

您正在将.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))