Flask中如何将POST请求JSON的y列表添加到指定JSON的d数组字典?
问题解决:Flask中POST请求JSON数据合并到现有字典结构
问题描述
现有var_data结构:
var_data = { "a" : [ { "b" : { "c": [ { "d": [ { "e": { "f": "hello" } } ] } ] } }] }
需要将Flask POST请求的JSON数据里的y列表添加到var_data的d数组内的字典中,请求JSON结构:
{ "a": "bcd", "w": [ { "e": { "f": "hello" }, "y": [ { "z": "123" } ] } ] }
要求:若请求中的y是空数组[],var_data中也需添加空数组"y":[]。
错误原因
原尝试代码:
tobeappended_list=request_data["w"][0]["y"] for j in range(len(tobeappended_list)): var_data["a"][0]["b"]["c"][0]["d"][0].append(tobeappended_list[j]["y"])
报错append不是字典的方法,因为var_data["a"][0]["b"]["c"][0]["d"][0]是字典类型,而append()是数组(列表)的专属方法,字典添加键值对不需要循环,直接赋值即可。
解决方案
直接将请求中的y列表作为键值对赋值给目标字典:
# 获取请求中的y列表 request_y = request_data["w"][0]["y"] # 给var_data的目标字典添加y键值对 var_data["a"][0]["b"]["c"][0]["d"][0]["y"] = request_y
此方法兼容y为空数组的场景,最终会得到期望的var_data结构:
var_data = { "a" : [ { "b" : { "c": [ { "d": [ { "e": { "f": "hello" }, "y": [ { "z": "123" } ] } ] } ] } }] }
内容的提问来源于stack exchange,提问作者reach jaango
相关产品推荐
相关产品推荐

