json.dumps和jsonify的相同点和不同点(python flask)

文章 , 技术分享
344 0

相同点:

  1. 都可以将 Python 对象转换为 JSON 格式的字符串。
  2. 都支持参数 indent、sort_keys 等参数来控制输出格式。

不同点:

  1. json.dumps 是 Python 内置的方法,而 jsonify 是 Flask 框架提供的方法。
  2. json.dumps 返回的是一个字符串,而 jsonify 返回的是一个 Response 对象。
  3. jsonify 会自动设置 Content-Type 为 application/json,而 json.dumps 需要手动设置。
  4. jsonify 支持直接传入 Python 对象,而 json.dumps 需要先将 Python 对象转换为字典或列表。
    json.dumps 的例子:

    import json
    data = {
     "name": "John",
     "age": 30,
     "city": "New York"
    }
    json_string = json.dumps(data)
    print(json_string)

    输出结果:

    {"name": "John", "age": 30, "city": "New York"}

    jsonify 的例子:

from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/data')
def get_data():
    data = {
        "name": "John",
        "age": 30,
        "city": "New York"
    }
    return jsonify(data)

if __name__ == '__main__':
    app.run()

访问 http://localhost:5000/api/data,返回结果:

{
  "age": 30,
  "city": "New York",
  "name": "John"
}

如果是做成接口想往外return用哪个比较好?
如果是做成接口想往外 return,建议使用 Flask 提供的 jsonify 方法,因为它会自动设置 Content-Type 为 application/json,而且可以直接传入 Python 对象,方便快捷。同时,使用 jsonify 也可以避免手动设置 HTTP 响应头和编码等问题,让代码更加简洁易读。

补充:

除了 json.dumpsjsonify,还有一些常用的 JSON 函数,包括:

  1. json.loads():将 JSON 格式的字符串转换为 Python 对象。
  2. json.dump():将 Python 对象转换为 JSON 格式的字符串,并写入文件。
  3. json.load():从文件中读取 JSON 格式的字符串,并将其转换为 Python 对象。

这些函数在处理 JSON 数据时非常常用,可以方便地进行数据的序列化和反序列化,以及文件的读写操作。

最后更新 2023-07-15
评论 ( 0 )
OωO
隐私评论