Jquery 如何更改字典的值/类型并将其放回
我有一个表单可以捕获用户的详细信息,在这个表单上我有许多单选按钮组,它们的值是Jquery 如何更改字典的值/类型并将其放回,jquery,python,json,dictionary,Jquery,Python,Json,Dictionary,我有一个表单可以捕获用户的详细信息,在这个表单上我有许多单选按钮组,它们的值是true和false。我还有多个选择框,我需要将其转换为列表 在序列化为JSON并将其发送到服务器端之前,我想将这些字段转换为布尔值和列表。目前我正在服务器端转换这些值 当我序列化时,它发送NestedMultiDict,这是一个元组列表字典。 我需要将单选按钮(当前为字符串)的值转换为布尔值,并将多选按钮的值放入列表中。 这就是我目前对它的看法: jQuery/AJAX: $("button").click(func
true
和false
。我还有多个选择框,我需要将其转换为列表
在序列化为JSON并将其发送到服务器端之前,我想将这些字段转换为布尔值和列表。目前我正在服务器端转换这些值
当我序列化时,它发送NestedMultiDict,这是一个元组列表字典。
我需要将单选按钮(当前为字符串)的值转换为布尔值,并将多选按钮的值放入列表中。
这就是我目前对它的看法:
jQuery/AJAX:
$("button").click(function(e) {
e.preventDefault();
$("input,select,textarea").jqBootstrapValidation();
var url = "{{'candidates.json'|route_url}}";
var data = $("form[name=modify]").serialize();
console.log(data);
//console.log(data);
$.post(url, data).success(function() {
update_messages();
}).error(function() {
console.log(url);
alert("failed");
});
});
Python:
def getBool(**d):
for k,v in d.iteritems():
if v == "True":
d[k] = True
print "true",d[k]
elif v == "False":
d[k] = False
print "false",d[k]
return d
当我需要将多选值放入列表并返回字典时,问题就出现了。我不知道如何转换这些值,然后将它们放回字典
有可能这样做吗?如果是这样,我如何才能做到这一点
作为一个附带问题:最有效的方法是什么?我稍微更改了我的
bool
函数,使其看起来像:
def bool(boolean):
if boolean == "True":
return True
else:
return False
现在,在我的Python函数中,我处理通过Ajax请求发送的序列化数据,我只需执行以下操作:
if self.context.relocate:
self.context.relocate = bool(self.context.relocate)
我发现我不需要将它放回NestedMultiDict
,因为self.context
处理应该插入数据库的数据。因此,现在我将数据保存到数据库中,而不用担心将数据放回Dict
我使用了一个名为Pyramid
的框架,它与MongoDB
和MongoEngine
(正是为了让上面的代码更有意义)
我希望这能帮助别人