python - 将 jsons 列表作为 1 个文件上传到 azure blob
问题描述
从 blobs sdk 我看到upload_blob
func 可以将数据获取为Iterable[AnyStr]
or IO[AnyStr]
:
def upload_blob( # pylint: disable=too-many-locals
self, data, # type: Union[Iterable[AnyStr], IO[AnyStr]]
blob_type=BlobType.BlockBlob, # type: Union[str, BlobType]
length=None, # type: Optional[int]
metadata=None, # type: Optional[Dict[str, str]]
**kwargs
):
我正在尝试传递字符串的函数列表(我通过 json.dumps 转换为字符串的 jsons 但它失败了。
我的代码:
connect_str = xxxxx
container_name = "my-container"
blob_path="xx/yy/zz"
def upload_to_blob_storage(data):
data_s = [json.dumps(event) for event in data ]
blob_service_client = BlobServiceClient.from_connection_string(connection_str)
blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_path)
blob_client.upload_blob(data_s, overwrite=False)
堆栈跟踪:
File "/Users/myUser/PycharmProjects/test/blob_storage.py", line 31, in upload_to_blob_storage
blob_client.upload_blob(data, overwrite=False)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/tracing/decorator.py", line 83, in wrapper_use_tracer
return func(*args, **kwargs)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/storage/blob/_blob_client.py", line 693, in upload_blob
return upload_block_blob(**options)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/storage/blob/_upload_helpers.py", line 94, in upload_block_blob
return client.upload(
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/storage/blob/_generated/operations/_block_blob_operations.py", line 224, in upload
pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 211, in run
return first_node.send(pipeline_request) # type: ignore
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request
[Previous line repeated 2 more times]
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/policies/_redirect.py", line 158, in send
response = self.next.send(request)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/storage/blob/_shared/policies.py", line 489, in send
response = self.next.send(request)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
[Previous line repeated 1 more time]
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/storage/blob/_shared/policies.py", line 290, in send
response = self.next.send(request)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 71, in send
response = self.next.send(request)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/_base.py", line 103, in send
self._sender.send(request.http_request, **request.context.options),
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/storage/blob/_shared/base_client.py", line 333, in send
return self._transport.send(request, **kwargs)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/azure/core/pipeline/transport/_requests_basic.py", line 273, in send
response = self.session.request( # type: ignore
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/requests/sessions.py", line 528, in request
prep = self.prepare_request(req)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/requests/sessions.py", line 456, in prepare_request
p.prepare(
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/requests/models.py", line 319, in prepare
self.prepare_body(data, files, json)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/requests/models.py", line 515, in prepare_body
body = self._encode_params(data)
File "/Users/myUser/PycharmProjects/test/venv/lib/python3.8/site-packages/requests/models.py", line 97, in _encode_params
for k, vs in to_key_val_list(data):
ValueError: too many values to unpack (expected 2)
我在这里想念什么?
解决方案
推荐阅读
- javascript - 如何将带有对象的数组推入数组
- php - Laravel 7 中的资源如何只显示创作者的某些领域?
- python - 如何检查列表项是否位于另一个列表中的元组之间?
- php - PHP - AJAX - 字段组数组 POST 值总是显示未定义的索引
- javascript - Bootstrap 4 Card Deck Fixed Card Width (当少于每行指定数量的卡片时)
- java - 无法使用休眠在同一 JSP 页面上同时保存一对多关系实体
- arraylist - 带有 Viewpager2 和回收器视图适配器的 Exoplayer
- powershell - 带有 Powershell 和通配符的 GnuPG 用于加密
- python - 如何从 Python 的根目录导入模块?
- reactjs - 删除在 ES6 语法中在另一个数组中重复的所有元素