Python django在不破坏JSON的情况下多次流式处理字典
我想使用Django流式传输响应。为此,, 我有这样的看法:Python django在不破坏JSON的情况下多次流式处理字典,python,json,django,stream,Python,Json,Django,Stream,我想使用Django流式传输响应。为此,, 我有这样的看法: def航班(请求、查询): req_obj=Flights.RequestObject(查询) 返回StreamingHttpResponse(req_obj.make_response(),content_type=“application/json”) 为了生成流的数据,我有一个生成器函数“make_response”, 这是类“Flights”的一个方法,实例化为“req_obj” 生成器函数在特定时刻生成一个纯python字典
def航班(请求、查询):
req_obj=Flights.RequestObject(查询)
返回StreamingHttpResponse(req_obj.make_response(),content_type=“application/json”)
为了生成流的数据,我有一个生成器函数“make_response”,
这是类“Flights”的一个方法,实例化为“req_obj”
生成器函数在特定时刻生成一个纯python字典
def make_response(self):
for _ in range(0,3):
yield some_dict
time.sleep(1)
这会导致以下行为:
- 第一次屈服后,json内容返回有效李>
- 在第二个(和之后的)结果产生后,返回的json内容无效李>
关于如何解决这个问题有什么建议吗?你试过类似的方法吗
req_obj.update(req_obj.make_response())
这将用您的方法新生成的值更新您的初始dict?您好,首先,我要感谢您的帮助。不幸的是,我不理解您的答案。我猜此更新将发生在streamingHttpResponse的第一个参数中,不幸的是,这不起作用,因为req_obj.make_response()不是一个对象,而是一个生成器@OmarAh yes correct@RafaelMarques,那么在生成器内部如何执行a:yield self.update(一些dict)我不确定您是如何从飞行对象构建dict的,但由于您可以在make_响应中访问它,您也许可以使用它来更新正在生成的字典,这不是问题所在。问题是,多次生成字典(相等或不同)会生成一些不是字典的东西@Omarright在您的问题中,它返回了两个字典,因此更新将把这些值合并到一个字典中