【问题标题】:How to get json from HTML form and keep type of input如何从 HTML 表单中获取 json 并保持输入类型
【发布时间】:2020-09-20 14:48:27
【问题描述】:

我可以从 HTML 表单中获取 json,但问题是侧 json 中的所有值都转换为字符串类型。 我都试过了
结果 = json.dumps(request.form) 结果 = jsonify(request.form) 但结果还是一样。 HTML form Output Json

有没有办法得到这样的结果 { “部门”:“销售”, “捐赠”:1538, "名字": "abc", “姓氏”:“ccc” }

HTML 代码

<!doctype html>
<html>
   <body>
<div class="container">
        <form action="/display" method="post" id="employForm"
        <fieldset>
        <label>First Name
          <input type="text" name="firstName" placeholder="Joe" required>
        </label>
        <label>Last Name
          <input type="text" name="lastName" id="lastName" placeholder="Schmoe" required>
        </label>
        <label>Homeless cat donation
          <input type="number" name="donation" id="donation" placeholder=1234 required>
        </label>

        <label>
        Department
          <select name="department" required>
            <option value="sales">Sales</option>
            <option value="marketing">Marketing</option>
            <option value="developer">Developer</option>
            <option value="business">Business Relations</option>
            <option value="sysAdmin">Systems Administration</option>
            <option value="operation">Operation</option>
          </select>
        </label>
            Thanks
        </fieldset>
      <button class="button-primary" type="submit" value="Submit" form="employForm">SUBMIT!</button>
    </form>
    </body>
  </div>
 </html>

这是python烧瓶代码

from flask import Flask, render_template, request, jsonify
import json

app = Flask(__name__)
@app.route('/')
def hello():
     return render_template('layout.html')

@app.route('/display', methods=["GET", "POST"])
def display():   
    result = jsonify(request.form)
    return result

if __name__ == "__main__":
      app.run(debug = True)

【问题讨论】:

  • 我建议您尝试执行 json.loads 以先将其转换回字典,然后再转换为 json.dumps。结果如何?
  • 谢谢,但结果是 { "department": "sales", "donation": "1538", "firstName": "abc", "lastName": "ccc" } 捐赠价值不保持格式为数字

标签: python html json request


【解决方案1】:

从这个答案Here做笔记

JSON 没有类型。以 JSON 格式发送的任何内容都将转换为字符串;所以不可能将donation 值作为整数发送。

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 2015-11-11
    相关资源
    最近更新 更多