gpt4 book ai didi

python - 迭代 django FileResponse 上的 streaming_content 属性

转载 作者:太空狗 更新时间:2023-10-30 01:14:32 26 4
gpt4 key购买 nike

我正在使用 django rest 框架开发一个 api,我正在编写一些单元测试来检查关键操作。我在执行获取请求后尝试读取文件的内容

downloaded_file = self.client.get(textfile)

问题是返回的对象类型为:django.http.response.FileResponse 继承自 StreamingHttpResponse .

我正在尝试迭代 streaming_content 属性,它应该是一个迭代器,但我无法迭代,没有方法 next()

我检查了这个对象,得到的是 map 对象。关于如何从此请求中获取内容的任何想法?

编辑:

问题解决

返回的对象是一个map,一个map接受一个函数和一个iterable:

https://docs.python.org/3.4/library/functions.html#map

我必须做的是将映射转换为列表,访问列表的第一个元素并将字节转换为字符串。不是很优雅,但它有效。

list(response.streaming_content)[0].decode("utf-8")

最佳答案

以下是从 streaming_content 映射中提取内容的方法:

content = downloaded_file.getvalue()

查看getvalue()方法的代码,我们看到它只是遍历答案内容:

class StreamingHttpResponse(HttpResponseBase):
...
def getvalue(self):
return b''.join(self.streaming_content)

关于python - 迭代 django FileResponse 上的 streaming_content 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29855807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com