从列表中多次加入相同的参数

时间:2016-07-01 20:56:48

标签: python python-2.7 flask

我正在使用列表中的值动态生成一个复选框列表,如下所示:

return flask.jsonify(result='\n'.join('<input type="checkbox" class="av-sources">%s<br>'% src for src in my_list))

我遇到的问题是,当尝试多次包含列表项时:

对于Ex:

.join('<input type="checkbox" class="av-sources" value="%s">%s<br>'% src for src in my_list))

我知道src没有被引用多次,我没有它在元组(item1,item2)中所以我得到以下错误:

TypeError: TypeError('not enough arguments for format string',) is not JSON serializable

在my_list中使用%src for src时,我不知道如何引用字符串两次)。

我尝试过切换到value="{0}">{0}<br>.format(src for src in my_list))

但代码不会遍历我的列表而只返回一个对象

  

&LT;我知道p e =“c h e c k b o x”c l a s s =“a v - s o u r   c“s a l u e =”&lt; g&n r a t o r o b j e c t&lt; g e n e x p r

     
    

a t 0 x 0 0 0 0 0 0 0 0 3 1 E D 9 0 0&gt; “&gt;&lt;&gt;&lt; g e n e x p r&gt; a t 0 x 0 0 0 0 0 0 0 0 3 1 E D 9 0 0&gt;     &LT; b r&gt;

  

我的职能是:

@app.route("/_srcs")
def source():


    try:
        source_txt = a JSON Blob
        source_load = json.loads(source_txt)
        sources = []
        for i in source_load['sources']:
            sources.append(i['name'])

        return flask.jsonify(result='\n'.join('<input type="checkbox" class="av-sources" value="{0}">{0}<br>'.format(src for src in sources)))

    except Exception as e:
        print(e)
        return flask.jsonify(error=e)

这是我的javascript:

$(function() {
var pythonsources = function(e) {
    console.log('kibi sources');
  $.getJSON($SCRIPT_ROOT + '/_srcs', {

  }, function(data) {

    $('#sources').html(data.result);
  });
  return false;
};
$('#menu-toggle2').bind('click', pythonsources );
});

如果有人能指出我正确的方向,谢谢

1 个答案:

答案 0 :(得分:3)

看起来你的支架位置错误。

更改...

'\n'.join('<input type="checkbox" class="av-sources" value="{0}">{0}<br>'.format(src for src in sources))

...到...

'\n'.join('<input type="checkbox" class="av-sources" value="{0}">{0}<br>'.format(src) for src in sources)