【问题标题】:Python: TypeError: string indices must be integers in pythonPython:TypeError:字符串索引在python中必须是整数
【发布时间】:2022-08-02 21:04:30
【问题描述】:

您好我正在尝试使用 python 将文件上传到 blob 存储中,但是这样做时我收到以下错误

TypeError:字符串索引必须是整数

目前我的代码看起来像这样

import os
import yaml
from azure.storage.blob import ContainerClient

def load_config():
    dir_root = os.path.dirname(os.path.abspath(__file__))
    with open(dir_root + \"/config.yaml\",\"r\") as yamlfile:
        return yaml.load(yamlfile, Loader=yaml.FullLoader)

def get_files(dir):
    with os.scandir(dir) as entries:
            for entry in entries:
                if entry.is_file() and not entry.name.startswith(\'.\'):
                    yield entry

config =load_config()
csvs =get_files(config[\"source_folder\"]+\"/csvs\")
print(*csvs)
  • 哪一行是错误?是用于 config[\"source_folder\"] 的吗?你确定 config 是一个 dict{} 吗?
  • 是的是的。这是正确的。我通过参考这个视频制作了这个程序youtube.com/watch?v=enhJfb_6KYU
  • 请提供问题中格式化的整个堆栈跟踪
  • 打印配置类型并仔细检查

标签: python string azure azure-blob-storage


【解决方案1】:

我试图在我的环境中重现我成功使用 python 将文件上传到 blob 存储

请使用以下代码将文件上传到 blob 存储

    from azure.storage.blob import BlobServiceClient
    import json
    twilioMetadata ={1:'dhoni',2:'rohit',3:'virat',4:'raina',5:'yuvaraj'}
    Body = json.dumps(twilioMetadata)
    print(Body)
    blob_service_client  = BlobServiceClient.from_connection_string("<connection string>")
    blob_client = blob_service_client.get_blob_client("container1",blob="upload2.json")
    blob_client.upload_blob(Body)

对于连接字符串,在存储帐户 -> 共享访问签名 -> 允许的资源类型中的“启用容器” -> 单击生成 sas 和连接字符串 -> 复制连接字符串

输出

最后,我的文件已成功上传到 azure blob 存储中,如下所示。

笔记:基于上面起草的响应和输出的python代码,我没有使用你的代码。

【讨论】:

    猜你喜欢
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 2016-02-17
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多