python - 我想从 Azure 继承迭代器 ItemPaged - ItemPaged[TableEntity] 到 Stream (Python) 获取流对象。是否可以?
问题描述
我想从 Azure 继承迭代器 ItemPaged - ItemPaged[TableEntity] 获取一个流对象到流(Python)。是否可以?
https://docs.microsoft.com/en-us/python/api/azure-core/azure.core.paging.itempaged?view=azure-python
https://docs.microsoft.com/en-us/python/api/azure-core/azure.core.paging.itempaged?view=azure-python
#Updated 11.08.2021 我实现了将 Azure 表备份到 Azure Blob -备份 Azure 表的当前进程。但我想改进这个过程,我正在考虑不同的选择。我尝试从 Azure Tables 获取流以使用 create_blob_from_stream
解决方案
我假设您想从 HTTP 响应流式传输字节,而不是使用您收到的对象的迭代器。
SDK 中的每个 API 都支持关键字参数调用raw_response_hook
,让您可以访问 HTTP 响应对象,然后让您根据需要使用流下载 API。请注意,由于有效负载被认为代表对象,因此无论如何它都会被预加载到内存中,但您仍然可以使用流语法。
回调只是一个参数:
def response_callback(response):
# Do something with the response
requests_response = response.internal_response
# Use "requests" API now
for chunk in requests_response.iter_content():
work_with_chunk(chunk)
请注意,这是非常先进的,您可能会遇到困难,这可能不完全符合您的要求。我们正在开发一种新的 SDK 模式来简化这样的复杂场景,但它还没有发布。您将能够使用一种send_request
方法发送和接收原始请求,该方法使您可以完全控制查询的各个方面,例如解释您只想流式传输(内存中没有预加载)或默认禁用反序列化。
如果您有其他问题或说明,请随时在 Azure SDK for Python 存储库上提出问题:https ://github.com/Azure/azure-sdk-for-python/issues
使用新建议进行编辑: TableEntity
是一个类似于类的 dict,因此您可以json.dumps
在json.dump
使用ItemPaged<TableEntity>
. 如果 JSON 转储引发异常,您可以尝试我们的 JSON 编码器azure.core.serialization.AzureJSONEncoder
:https ://github.com/Azure/azure-sdk-for-python/blob/1ffb583d57347257159638ae5f71fa85d14c2366/sdk/core/azure-core/tests/test_serialization.py #L83
(我在 MS 的 Azure SDK for Python 团队工作。)
参考:
推荐阅读
- java - 用什么代替 ArrayList 来分组数据?
- javascript - Gatsby 代码框:TypeError:无法读取未定义的属性“src”
- tensorflow2.0 - AttributeError:模块“张量流”没有属性“版本”
- sql-server - 将 SQL 结果写入 xlsx 的 Powershell 脚本 - 即使查询返回记录,Excel 工作表也是空白的
- docker - Docker - 守护进程上下文未指向本地目录
- javascript - “无服务器离线:找不到路由。” 在离线模式下运行 AWS Lambda 函数
- django - Webpack 使用文件夹名称而不是 Url 作为公共路径
- javascript - 不显示长度已过期值的记录
- android - React Native 0.60 - 无法使用 react-native run-android 运行应用程序:java.lang.NoClassDefFoundError
- material-ui - Material-UI Menu,MenuItem in a Table 不访问其记录的值,而是 MenuItem 只能访问最后一条记录的值