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

解析嵌套JSON遇TypeError:参数数量不匹配问题求助

解决TypeError: parse_pm_order_operations_dl()参数不匹配问题

错误原因

你调用parse_pm_order_operations_dl时传入了s3obj和record两个参数,但函数定义里的参数是(self, record, response)——其中response参数完全没被使用,且参数顺序和调用时不匹配,导致参数数量/位置不匹配触发报错。

修复步骤

1. 修正函数参数签名

因为你的parse_pm_order_operations_dl函数内部根本没用到s3obj或response,所以直接调整函数定义和调用逻辑:

修改调用代码(在parse_lines方法中):

# 移除不必要的s3obj参数
operations_dl = self.parse_pm_order_operations_dl(record)

修改函数定义:

# 移除无用的response参数,仅保留self和record
def parse_pm_order_operations_dl(self, record):
    metadata = record.get('metadata')
    payload = record.get('payload')
    try:
        # 去掉末尾逗号,避免变量变成元组
        plantMaintenanceOrderOperations = payload.get("plantMaintenanceOrderOperations")
    except:
        return []  # 返回空列表更符合后续append逻辑

    if not plantMaintenanceOrderOperations:
        return []
    
    # 移除不必要的json.loads调用——payload中的字段已经是列表格式
    # try:
    #     plantMaintenanceOrderOperations = json.loads(plantMaintenanceOrderOperations)
    # except:
    #     return {}

    result = []
    # 重命名循环变量,避免覆盖枚举索引
    for _, item in enumerate(plantMaintenanceOrderOperations):
        item_data = metadata.copy()
        item_data.update({
              'operationStandardTextKey': item["operationStandardTextKey"],
              'operationActivityNumber': convert_to_int(item["operationActivityNumber"]),
              'operationDescription': item["operationDescription"],
              'operationStatusSystem': item["operationStatusSystem"],
              'operationStatusUser': item["operationStatusUser"],
              'operationConfirmationNumber': item["plantMaintenanceOrderOperationsActualData"]["operationConfirmationNumber"],
              'operationActualWork': item["plantMaintenanceOrderOperationsActualData"]["operationActualWork"],
              'operationEarliestScheduledStartTimestamp': item["plantMaintenanceOrderOperationsDates"]["operationEarliestScheduledStartTimestamp"],
              'operationConstraintFinishTimestamp': item["plantMaintenanceOrderOperationsDates"]["operationConstraintFinishTimestamp"],
              'operationLatestScheduledStartTimestamp': item["plantMaintenanceOrderOperationsDates"]["operationLatestScheduledStartTimestamp"],
              'operationEarliestScheduledStartTime': item["plantMaintenanceOrderOperationsDates"]["operationEarliestScheduledStartTime"],
              'operationEarliestScheduledFinishTime': item["plantMaintenanceOrderOperationsDates"]["operationEarliestScheduledFinishTime"],
              'operationConstraintFinishTime': item["plantMaintenanceOrderOperationsDates"]["operationConstraintFinishTime"],
              'operationConstraintStartTime': item["plantMaintenanceOrderOperationsDates"]["operationConstraintStartTime"],
              'operationLatestScheduledFinishTimestamp': item["plantMaintenanceOrderOperationsDates"]["operationLatestScheduledFinishTimestamp"],
              'operationEarliestScheduledStartDate': item["plantMaintenanceOrderOperationsDates"]["operationEarliestScheduledStartDate"],
              'operationConstraintFinishType': item["plantMaintenanceOrderOperationsDates"]["operationConstraintFinishType"],
              'operationLatestScheduledStartDate': item["plantMaintenanceOrderOperationsDates"]["operationLatestScheduledStartDate"],
              'operationEarliestScheduledFinishTimestamp': item["plantMaintenanceOrderOperationsDates"]["operationEarliestScheduledFinishTimestamp"],
              'operationConstraintStartDate': item["plantMaintenanceOrderOperationsDates"]["operationConstraintStartDate"],
              'operationEarliestScheduledFinishDate': item["plantMaintenanceOrderOperationsDates"]["operationEarliestScheduledFinishDate"],
              'operationLatestScheduledFinishTime': item["plantMaintenanceOrderOperationsDates"]["operationLatestScheduledFinishTime"],
              'operationConstraintStartType': item["plantMaintenanceOrderOperationsDates"]["operationConstraintStartType"],
              'operationConstraintStartTimestamp': item["plantMaintenanceOrderOperationsDates"]["operationConstraintStartTimestamp"],
              'operationLatestScheduledStartTime': item["plantMaintenanceOrderOperationsDates"]["operationLatestScheduledStartTime"],
              'operationLatestScheduledFinishDate': item["plantMaintenanceOrderOperationsDates"]["operationLatestScheduledFinishDate"],
              'operationConstraintFinishDate': item["plantMaintenanceOrderOperationsDates"]["operationConstraintFinishDate"],
              'operationWorkCenterId': item["plantMaintenanceOrderOperationsInternal"]["operationWorkCenterId"],
              'operationWorkCenterDescription': item["plantMaintenanceOrderOperationsInternal"]["operationWorkCenterDescription"],
              'operationWorkCenterPlantId': item["plantMaintenanceOrderOperationsInternal"]["operationWorkCenterPlantId"],
              'operationControKey': item["plantMaintenanceOrderOperationsInternal"]["operationControKey"],
              'operationActivityType': item["plantMaintenanceOrderOperationsInternal"]["operationActivityType"],
              'operationWorkActivity': item["plantMaintenanceOrderOperationsInternal"]["operationWorkActivity"],
              'operationNumberOfWorkers': convert_to_int(item["plantMaintenanceOrderOperationsInternal"]["operationNumberOfWorkers"]),
              'operationDuration': item["plantMaintenanceOrderOperationsInternal"]["operationDuration"],
              'operationPersonalNumber': item["plantMaintenanceOrderOperationsInternal"]["operationPersonalNumber"],      
              'p_date':  get_current_date(),
              'p_hour': get_current_hour()
        })
        result.append(item_data)
    return result

2. 其他关键修正说明

  • 移除plantMaintenanceOrderOperations赋值末尾的逗号:原代码多了逗号导致变量变成元组,无法正常遍历。
  • 删除不必要的json.loads调用:从你提供的JSON结构来看,plantMaintenanceOrderOperations已经是列表类型,无需二次解析。
  • 修正循环变量名冲突:原代码用idx同时作为枚举索引和数据字典的变量名,易引发逻辑错误,换成item_data更清晰。
  • 空返回值从{}改为[]:函数返回列表类型,返回空列表更符合后续append的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:04:53