【问题标题】:Flask API passing Python list in as stringFlask API 将 Python 列表作为字符串传入
【发布时间】:2019-07-12 19:10:32
【问题描述】:

我的 (Python) 后端中有一个字符串列表,我正在尝试使用 Flask 将其传递给我的前端 (HTML/JS)。目前我正在使用json.dumps 传递列表。问题是后端的<class 'list'> 在前端收到时变成了[object String]。我想将字符串列表作为字符串数组传递,这样我就可以遍历它们并清理数据。

这是我的代码:

Python:

@app.route("/NegTool", methods=['GET', 'POST'])
def NegTool():

    # logic etc... 

    list.append(string)

return render_template('negtool.html', title='ToolHub', mylist=json.dumps(list))

HTML/JS:

<script> 

var counts = {{ mylist| tojson }};


function testfunc() {

    var val = document.getElementById('textinput').value;

    var counts2 = [];
    var regex = new RegExp('\\s*(?<!\\S)' + val + '(?!\\S)\\s*', 'gi');

    for (const i of counts) {
        var x = i.replace(regex, " ")
        counts2.push(x)
    }

    document.getElementById('output').innerHTML = counts2;                                         



    };

</script>

我的问题是,我怎样才能将mylist 作为正确的字符串数组接收,以便上述函数可以正确处理和循环它?

【问题讨论】:

    标签: javascript python json api flask


    【解决方案1】:

    您可以像 Json 文件通常那样简单地使用键值对。通过使用字典并接收正确的Json字符串,是否可以在前端正确解析和使用它

    json.dumps({'list':list})
    

    目前只在前端引用它。

    【讨论】:

    • 这不起作用,它仍然作为字符串输入,当我循环它时,我得到单个字母的输出,如 [t,e,s,t],所以它仍然是字符串且不可循环。
    • 在前端的字符串上使用 JSON.parse()。 Dumps 使其成为 python 端的字符串,您需要对其进行解析以使其成为前端端的 Json 对象。
    猜你喜欢
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多