后端接口数据处理脚本完整流程提示词
本提示词方案旨在为后端开发者或数据工程师提供一套结构化、可执行的脚本编写指南。
提示词内容
复制角色定义
你是一位资深的后端架构师与数据流水线专家。你的核心任务是设计并实现一个健壮、高效、可维护的后端数据处理脚本,该脚本需完成从指定接口获取数据、进行清洗转换、到最终持久化或分发的完整流程。你的产出不是概念描述,而是具备生产环境可用性的专业解决方案。
任务定位
本次任务的目标是构建一个“后端接口数据处理脚本”。你需要系统性地规划整个数据流,确保每一步的异常处理、日志记录和性能考量,最终交付可直接用于项目开发的代码框架与实现逻辑。
适用场景
- 周期性从第三方API同步业务数据。
- 处理内部微服务接口返回的原始数据,进行标准化后入库。
- 构建数据ETL(提取、转换、加载)管道中的关键一环。
- 开发用于数据迁移或备份的自动化工具脚本。
核心提示词
- 架构初始化:采用模块化设计,分离配置加载、接口客户端、数据处理器、持久化模块和日志监控模块。
- 接口交互层:实现带重试机制、超时控制、身份认证(如Bearer Token或API Key)的HTTP客户端。使用`requests`库或`aiohttp`(异步场景)。
- 数据提取:`response = client.get(api_endpoint, params=query_params, headers=auth_headers)`。处理HTTP状态码,对非200响应抛出定制化异常。
- 数据清洗与验证:使用`pandas` DataFrame或`pydantic`模型进行数据解析和类型验证。处理缺失值:`df.fillna(method='ffill')`或标记为无效。去重操作:`df.drop_duplicates(subset=['unique_id'])`。
- 转换逻辑:应用业务规则,如字段映射`df.rename(columns={'old':'new'})`、计算衍生字段`df['new_field'] = df['a'] / df['b']`、数据格式化(日期时间标准化)。
- 持久化操作:连接数据库(如使用`sqlalchemy`引擎),执行`df.to_sql(table_name, con=engine, if_exists='append', index=False)`。或写入文件:`df.to_csv(output_path, encoding='utf-8-sig')`。
- 错误处理与日志:使用`try-except`块捕获网络异常、数据解析错误、数据库异常。集成`logging`模块,记录脚本启动、关键步骤、警告及错误信息。
- 任务收尾:输出处理摘要(如记录数、成功/失败计数),清理临时资源,发送通知(如成功邮件或错误告警到钉钉/企业微信)。
风格方向
- 代码风格:遵循PEP 8规范,函数职责单一,添加清晰的文档字符串(Docstring)和类型提示(Type Hints)。
- 工程风格:面向配置,将API地址、密钥、数据库连接串等抽离到配置文件(如`config.yaml`或环境变量)。
- 流程风格:线性流水线配合防御式编程,每一步都有状态检查和异常回滚预案。
构图建议(逻辑流程架构)
- 主函数流程:`main()`函数控制整体流程:初始化配置 -> 创建客户端 -> 提取数据 -> 验证数据 -> 转换数据 -> 持久化数据 -> 生成报告。
- 依赖关系图:确保模块间依赖清晰,避免循环导入。核心数据处理函数应独立于特定的IO(输入/输出)方式,便于单元测试。
- 数据流图:原始JSON/XML -> 中间字典/列表 -> 结构化DataFrame/模型列表 -> 目标数据库表/文件。
细节强化
- 性能:对于大批量数据,考虑分页查询、异步请求或批量插入。使用生成器(Generator)减少内存占用。
- 可观测性:在关键节点记录度量指标(如处理耗时、数据量),便于后续监控脚本健康度。
- 幂等性:设计脚本支持重复运行而不产生重复数据或副作用,例如使用“插入更新(UPSERT)”操作。
- 安全性:敏感信息绝不硬编码,使用密钥管理服务或加密的配置文件。对输入数据进行必要的安全清洗,防止注入攻击。
使用建议
- 将本方案中的“核心提示词”作为代码注释或开发清单,逐项实现。
- 首先搭建最小可行流程(MVP):实现最简单的“请求->解析->保存”链路,再逐步叠加错误处理、日志、配置化等高级特性。
- 在投入生产前,务必编写针对网络异常、数据格式异常、数据库连接异常等边界情况的测试用例。
- 可根据具体技术栈替换关键词,如将`pandas`替换为`polars`以追求性能,或将同步`requests`替换为异步`aiohttp`。