You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flask的jsonify输出中自定义日期格式为dd.mm.yyyyy?

解决DateofSPC字段格式问题的两种方法

方法一:针对性处理单个字段

在构建字典的循环中,对DateofSPC字段单独做格式化处理,适合仅需修改这一个字段的场景:

import datetime  # 记得导入datetime模块

cursor.execute(sql)
row_headers = [x[0] for x in cursor.description]
json_data = []

for row in cursor.fetchall():
    row_dict = dict(zip(row_headers, row))
    # 检查字段是否存在且为date类型,然后格式化
    if 'DateofSPC' in row_dict and isinstance(row_dict['DateofSPC'], datetime.date):
        row_dict['DateofSPC'] = row_dict['DateofSPC'].strftime('%d.%m.%Y')
    json_data.append(row_dict)

return jsonify(json_data)

方法二:自定义JSON编码器全局处理

如果项目中有多处需要将datetime.date类型转为dd.mm.yyyy格式,可以自定义Flask的JSON编码器,实现全局统一处理:

from flask import Flask, jsonify
import datetime
import json

# 自定义JSON编码器
class CustomJSONEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, datetime.date):
            return obj.strftime('%d.%m.%Y')
        # 其他类型交给父类默认逻辑处理
        return super().default(obj)

# 将自定义编码器绑定到Flask应用
app = Flask(__name__)
app.json_encoder = CustomJSONEncoder

# 原数据处理代码无需修改
cursor.execute(sql)
row_headers = [x[0] for x in cursor.description]
json_data = []
for row in cursor.fetchall():
    json_data.append(dict(zip(row_headers, row)))

return jsonify(json_data)

说明:strftime('%d.%m.%Y')中,%d对应两位日期、%m对应两位月份、%Y对应四位年份,刚好匹配你需要的dd.mm.yyyy格式(你提到的yyyyy应为笔误,实际使用四位年份即可)。

内容的提问来源于stack exchange,提问作者Josef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 19:10:30