我正在尝试运行一个类似于这样的代码:
for blob in container_client.walk_blobs(delimiter='/'): print(blob)
一个名为“$mycontainer”的容器。请求成功,我得到了信息。然而,对于 blob 的属性 container,返回的字符串是“%24mycontainer”,而不是“$mycontainer”。好像被某种方式编码了。有没有一种方法可以让这个属性返回正确的容器名,而不需要对特殊字符进行编码?
pvabu6sv1#
我同意Anand的评论**%24在URL编码中相当于字符$。如果需要获取$mycontainer**未编码的容器名,可以使用Python中urllib.parse模块中的unquote函数。
%24
$
$mycontainer
urllib.parse
unquote
验证码:
from azure.storage.blob import BlobServiceClient from urllib.parse import unquote connection_string = "your-Connection-string" container_name = "$sample" blob_service_client = BlobServiceClient.from_connection_string(connection_string) container_client = blob_service_client.get_container_client(container_name) for blob in container_client.walk_blobs(delimiter='/'): container_name = unquote(blob.container) print(container_name)
输出:将容器名打印为$sample,而不是**%24sample**。
$sample
%24sample
参考:
urllib.parse -将URL解析为组件- Python 3.11.6文档
1条答案
按热度按时间pvabu6sv1#
我同意Anand的评论**
%24
在URL编码中相当于字符$
。如果需要获取
$mycontainer
**未编码的容器名,可以使用Python中urllib.parse
模块中的unquote
函数。验证码:
输出:将容器名打印为
$sample
,而不是**%24sample
**。参考:
urllib.parse -将URL解析为组件- Python 3.11.6文档