尝试构建 JSON 文件但出现错误 concat datetime to string

Trying construc JSON file but got error concat datetime to string

我对 python 没有太多经验,我正在尝试 运行 数据库中的查询,其中 returns 我的字段是数字、状态、打开日期,到期日期和描述,但即使在编码时我也遇到错误,下面是我的代码,他们可以帮助我解决我做错的事情

json_requisicoes.append({'Numero Requisicao:'+行[0], 'Status:'+行[1], 'Data de Abertura:'+行[2], 'Prazo:' +行[3], 'Descricao:'+行[4]})

TypeError: 只能将 str(不是“datetime.datetime”)连接到 str

import mysql.connector
import json
from datetime import datetime
import array as arr
    
class DateTimeEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, (datetime.datetime, datetime.date, datetime.time)):
            return obj.isoformat()
        elif isinstance(obj, datetime.timedelta):
            return (datetime.datetime.min + obj).time().isoformat()
    return super(DateTimeEncoder, self).default(obj)
    
def GetRequisicoes():
    json_requisicoes = []
    select_requisicoes = ("""SELECT * FROM data_req
                             WHERE DATE(sla_due_date_req) <= DATE(NOW()) 
                             AND status_req NOT LIKE 'Pendente'
                             ORDER BY n_req ASC;""")
    cursor = conn.cursor()
    cursor.execute(select_requisicoes)
    result = cursor.fetchall()
        
    for row in result:
        json_requisicoes.append({'Numero Requisicao:'+row[0], 'Status:'+row[1], 'Data de Abertura:'+row[2], 'Prazo:'+row[3], 'Descricao:'+row[4]})
    with open("./output_requisicoes.json", 'w', encoding='utf-8') as f:
        json.dump(json_requisicoes, f, ensure_ascii=False, indent=4, cls=DateTimeEncoder) 
    cursor.close() 

您不应该连接字符串。你应该附加字典。字典在键和值之间有 :,而不是 +

您还需要将日期时间格式化为字符串,因为无法在 JSON 中表示原始日期时间对象。您可以为此使用 isoformat() 方法。

    for row in result:
        json_requisicoes.append({
            'Numero Requisicao': row[0], 
            'Status': row[1], 
            'Data de Abertura': row[2].isoformat(),
            'Prazo': row[3], 
            'Descricao': row[4]
    })