当前位置: 首页 > 面试题库 >

将Flask表单数据转换为JSON仅获得第一个值

亢奇
2023-03-14
问题内容

我想从HTML表单中获取输入,并以JSON格式提供输出。选择多个值时,它们不会转换为JSON数组,仅使用第一个值。

@app.route('/form')
def show_form():
    return render_template('form.html')

@app.route("/result", methods=['POST'])
def show_result():
    result = request.form
    return render_template('result.html', result=result)

form.html

<form method=POST>
   <input name=server>
   <select name=owners multiple>
       <option value="thor">thor</option>
       <option value="loki">loki</option>
       <option value="flash">flash</option>
       <option value="batman">batman</option>
   </select>
   <input type=submit>
</form>

result.html

{{ result|tojson }}

如果为所有者选择了多个值,“ thor”和“ flash”,则输出仅显示一个值:

{"server": "app-srv", "owners": "thor"}

我希望拥有者成为清单:

{"server": "app-srv", "owners": ["thor", "flash"]}

如何在不丢失列表值的情况下将表单显示为JSON?


问题答案:

request.form是一个MultiDict遍历multidict仅返回每个键的第一个值。要获取包含值列表的字典,请使用to_dict(flat=False)

result = request.form.to_dict(flat=False)

为了保持一致性,所有值都是列表,即使只有一项也是如此。如果要展平单值项目,则需要手动处理数据。使用iterlists带有字典理解。

result = {
    key: value[0] if len(value) == 1 else value
    for key, value in request.form.iterlists()
}


 类似资料:
  • 问题内容: 我正在尝试将表单数据转换为对象,但我有这个线程,但是我不知道为什么它对我不起作用。我正在使用以下代码。 我尝试调试它,并注意到当我的函数运行时,它总是在else语句中运行代码。 问题答案: 我在JSFiddle中添加了以上表单,它将JSON数据显示为输出。 工作中的JSFiddle

  • 问题内容: 我正在尝试将HTML表中存在的数据转换为JSON,以便可以在服务器端进行相应的处理。我可以序列化数据,但是结果充其量只能生成不直接链接的独特数据数组。像:这是我正在使用的形式: 序列化数据的脚本是: 经过数页StackOverFlow之后,我得到了serializeFormJSON(): 通过使用所有这些,我可以得到像这样的JSON: 我尝试了多种方法以名称-性别格式获取它们,但是每种

  • 问题内容: 我有一个表格,可以向Flask发送一个int值。但是,返回一个字符串。Flask为什么不给我一个整数? 我尝试将其强制转换为int,但是下面的路由返回了400或500错误。如何获得Flask中的int类型? 问题答案: HTTP表单数据是一个字符串,Flask不会收到有关客户端将每个值指定为哪种类型的任何信息。因此,它将所有值解析为字符串。 您可以调用以获取ID作为一个整数。如果该值不

  • 问题内容: 是否有任何jQuery或javascript库根据给定的json数据生成动态表?我不想定义列,该库应该读取json哈希中的键并生成列。 当然,我可以自己遍历json数据并生成html表。我只想知道是否存在可以简单重用的此类库。 问题答案: 感谢大家的答复,这使用jQuery。 程式码片段:

  • 我在HTML和CSS方面有一些丰富的经验,但在JS和Jquery方面的经验不多,我希望将JSON数据(在我的例子中是文本和图像)放入HTML表中,但经过几天的研究,似乎没有任何工作对我来说,这是JSON数据。 到目前为止,我尝试了很多不同的代码,但似乎都没有工作,因为1)我不知道如何在“team 1”和“team 2”字段中选择字段“name”;2)我不知道是否可以将团队的图像放在团队名称附近。希

  • 我必须以JSON格式转换数据表单以发送到webAPI。 我有一个从第1页调用的弹出表单: 第1页有以下代码: 输出JSON不正确。代码返回如下字符串: ! DOCTYPE html 什么是最好的方法来字符串化输入数据?我哪里错了?