我正在使用列表中的值动态生成一个复选框列表,如下所示:
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 );
});
如果有人能指出我正确的方向,谢谢
答案 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)