【问题标题】:Create and upload csv file to azure blob storage using python使用 python 创建 csv 文件并将其上传到 azure blob 存储
【发布时间】:2020-11-02 22:14:24
【问题描述】:

我正在尝试使用 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)

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

【问题讨论】:

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


    【解决方案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))
                                    
    

    【讨论】:

    • 谢谢兄弟,你帮了我很多。您的建议并没有解决我的问题,但是您迫使我再次查看文档,结果超出了我的想象。正确的做法是:blob.upload_blob(data=df.to_csv(index=False))
    • 很高兴听到!我在上面的解决方案中修复了它。
    猜你喜欢
    • 2019-12-01
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 2023-03-10
    • 2021-03-31
    • 2017-01-24
    • 2017-08-19
    • 2020-07-13
    相关资源
    最近更新 更多