python json.dumps(str) jsonify(str) 函数详解

json.dumps() 和 jsonify 是 Python 中用于处理 JSON 数据的两个不同函数,分别属于标准库 json 和 Flask 框架的 flask 模块。以下是它们的详细解释和区别:


1. json.dumps(body)

  • 所属库‌: Python 标准库 json

  • 功能‌: 将 Python 对象(如字典、列表)序列化为 JSON 格式的字符串。

  • 参数‌:

    • body: 需要转换的 Python 对象(如 dictlist)。
    • 可选参数: indent(缩进)、ensure_ascii(是否转义非 ASCII 字符)、sort_keys(按键排序)等。
  • 返回值‌: JSON 格式的字符串(str 类型)。

  • 示例‌:

    import json 
    data = {"name": "Alice", "age": 25} 
    json_str = json.dumps(data) 
    # 输出: '{"name": "Alice", "age": 25}'

  • 特点‌:

    • 仅生成字符串,不直接支持 HTTP 响应。
    • 适用于需要将 JSON 数据存储到文件或通过网络传输的场景。

2. jsonify(body)

  • 所属库‌: Flask 框架的 flask 模块。

  • 功能‌: 将 Python 对象转换为 Flask 的 Response 对象,并自动设置 HTTP 头 Content-Type: application/json

  • 参数‌:

    • body: 需要转换的 Python 对象(如 dictlist)。
    • 支持关键字参数形式(如 jsonify(name="Alice", age=25))。
  • 返回值‌: Flask 的 Response 对象,可直接用于 HTTP 响应。

  • 示例‌:

    from flask import Flask, jsonify 
    app = Flask(__name__) 
    @app.route("/data") 
    def get_data(): 
      data = {"name": "Alice", "age": 25} 
      return jsonify(data) 
    # 自动转为 JSON 并设置响应头

  • 特点‌:

    • 专为 Web 开发设计,简化 JSON API 的响应。
    • 自动处理 JSON 序列化和 HTTP 头设置。

核心区别

特性json.dumps()jsonify()
所属库Python 标准库 jsonFlask 框架 flask
返回值类型JSON 字符串(strFlask Response 对象
HTTP 头支持需手动设置 Content-Type自动设置为 application/json
适用场景通用 JSON 序列化(非 Web)Web API 开发(Flask 专用)

何时使用?

  • 如果需要在非 Web 环境下序列化 JSON(如写入文件),用 json.dumps()
  • 如果是 Flask Web 开发并返回 JSON 响应,用 jsonify()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值