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

如何在Python中用两个列表构建字典或JSON(Flask+PostgreSQL场景)

解决方案

核心需求是将数据库中同日期的文本字段分组,生成以日期为键、对应文本数组为值的对象列表,以下是修正后的实现方案:

修正后代码

import json
from flask import jsonify

# 假设cursor为执行查询后的数据库游标
date_group = {}
result = []

for row in cursor.fetchall():
    # 按需求格式化日期为DD-MM-YYYY格式
    cdate = row[0].strftime("%d-%m-%Y")
    text_content = row[1]
    
    # 按日期分组存储文本
    if cdate not in date_group:
        date_group[cdate] = []
    date_group[cdate].append(text_content)

# 转换为目标JSON结构的列表
for date, texts in date_group.items():
    result.append({date: texts})

# Flask直接返回jsonify,自动处理序列化和响应头
return jsonify(result)

关键修正说明

  • 日期格式处理:原代码中cdate1=date[0]是错误逻辑,改用strftime直接格式化日期,避免字符串拆分的冗余操作,若数据库日期格式不同,可调整strftime的参数(如%Y-%m-%d对应年-月-日)。
  • 分组逻辑优化:先用字典date_group按日期聚合文本列表,避免重复创建对象,最后再转换为目标的列表结构。
  • Flask响应优化:使用Flask内置的jsonify方法,比手动json.dumps再json.loads更高效,还能自动设置正确的HTTP响应头。
  • 无效代码清理:移除了原代码中未定义的text_output、无意义的row[4]判断等错误内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:20:27