【问题标题】:Streaming request results across function call in python在 python 中跨函数调用流式传输请求结果
【发布时间】:2017-03-22 07:00:21
【问题描述】:

我有一个用例,我的 API 必须将大量数据返回给调用函数。我在python中使用请求库。我设置了流=真。 响应能够保存接近 2 GB 的数据,但我现在想将结果以流的形式返回给调用 python 脚本,而不是作为单个响应对象。 我该怎么做。 目前我正在将所有内容写入列表,然后将列表作为函数结果传递。 我想做的是跨函数调用流式传输。

【问题讨论】:

  • stream 参数是关于来自 Internet 的流数据,而不是“跨代码”(后者甚至没有意义)。

标签: python python-requests


【解决方案1】:

根据documentation

默认情况下,当您发出请求时,会立即下载响应的正文。您可以覆盖此行为并推迟下载响应正文,直到您使用流参数访问 Response.content 属性。

您可以使用Response.iter_content()Response.iter_lines() 方法进一步控制工作流程。或者,您可以从底层 urllib3 urllib3.HTTPResponse Response.raw 读取未解码的正文。

您可能还想阅读generator functions,了解如何一次返回一个数据序列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-28
    • 2016-09-29
    • 2017-02-22
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    相关资源
    最近更新 更多