所以我有一个flask应用程序,基本上可以方便地编辑json文件。我接收这个json文件,将它交给orderedict,然后允许用户在浏览器中编辑它。由于我使用的编辑器的趣味性,用户一次只能编辑一个“子系统”,因此我有一个递归函数来查找他们编辑的子系统,并在全局变量上更改该子系统。你知道吗
def update_dict_with_edits(main_dict, changed_dict):
if changed_dict["name"] == main_dict["name"]:
space_system_dict = changed_dict
return
if "sub_systems" not in main_dict:
return
for sub_system in main_dict["sub_systems"]:
update_dict_with_edits(sub_system, changed_dict)
这里称之为:
@app.route('/updatedict', methods=['POST'])
def update_dict():
if request.method == 'POST':
changed_json_system = request.form.get('json_data', None)
changed_dict_system = json.loads(changed_json_system, object_pairs_hook=OrderedDict)
# the_dict_object.the_json is the global variable I want to edit
update_dict_with_edits(the_dict_object.the_json, changed_dict_system)
如果我把递归和它正在编辑的子系统的硬代码取出来,它就会工作,比如:
space_system_dict["sub_system"][0] = changed_json_dict
但在当前的设置下不起作用。有什么不正确的地方吗?是不是关于我如何调用递归使得它不再是被操纵的全局变量参数?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐