AI 非常适合处理 格式转换(CSV ↔ JSON ↔ SQL)和迁移脚本,因为转换规则是机械性的。诀窍是给它足够的上下文以确保正确性和安全性:schemas、一行示例数据和明确的安全要求。
import csv
# Source CSV: id,email,signup_date (signup_date may be blank)
# Target table: users(id INT, email TEXT NOT NULL, signup_date DATE NULL)
def csv_to_sql(path: str) -> list[str]:
statements = []
with open(path, newline="", encoding="utf-8") as f:
for row in csv.DictReader(f):
email = row["email"].strip()
if not email: # validate: skip invalid rows, don't insert garbage
continue
date = row["signup_date"].strip() or None
email_sql = email.replace("'", "''") # escape quotes to avoid broken SQL / injection
date_sql = f"'{date}'" if date else "NULL"
# ON CONFLICT makes it idempotent: re-running won't create duplicates
statements.append(
f"INSERT INTO users (id, email, signup_date) "
f"VALUES ({int(row['id'])}, '{email_sql}', {date_sql}) "
f"ON CONFLICT (id) DO NOTHING;"
)
return statements
注释标记了重要的部分:验证(跳过空的电子邮件)、转义(引号)和幂等性(ON CONFLICT DO NOTHING)。让 AI 包含这三部分 — 这些是朴素脚本容易忘记的东西。
数据迁移风险很高,通常是一次性的:一个重复插入或删除行的脚本可能很昂贵才能撤销。AI 加快了编写转换的速度,但安全属性 — 幂等性、验证和在副本上进行 dry-run — 是不可商量的。将生成的脚本视为您必须阅读和测试的草稿,永远不要在真实数据上盲目运行。
一个包含详细解答的 IT 面试题库——从初级到高级。
捐赠