Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何更改字典的值/类型并将其放回_Jquery_Python_Json_Dictionary - Fatal编程技术网

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
(正是为了让上面的代码更有意义)

我希望这能帮助别人