AI biçim dönüştürmeleri (CSV ↔ JSON ↔ SQL) ve taşıma betikleri için uygun olmakla beraber, dönüştürme kuralları mekanik olduğu için. İçerik sağlamak olur doğru ve güvenli olmak için: şemalar, örnek satır ve açık güvenlik gereksinimleri.
AI biçim dönüştürmeleri (CSV ↔ JSON ↔ SQL) ve taşıma betikleri için uygun olmakla beraber, dönüştürme kuralları mekanik olduğu için. İçerik sağlamak olur doğru ve güvenli olmak için: şemalar, örnek satır ve açık güvenlik gereksinimleri.
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
Yorumlar önemli parçaları işaretler: validasyon (boş e-postaları atla), escaping (tırnak işaretleri) ve idempotency (ON CONFLICT DO NOTHING). AI'den üçünü de dahil etmesini isteyin — bunlar saf bir betiğin unuttuğu şeyler.
Veri taşımaları yüksek risklidir ve genellikle tek seferlik: çift ekleme yapan veya satırları düşüren bir betik geri alması pahalı olabilir. AI dönüştürmeyi yazımı hızlandırır, ancak güvenlik özellikleri — idempotency, validasyon ve kopya üzerinde dry-run — pazarlık edilemez. Oluşturulan betiği, okumanız ve test etmeniz gereken bir taslak olarak değerlendirin, asla gerçek verilere karşı kör olarak çalıştırmak için bir şey değildir.
Junior'dan Senior'a detaylı cevaplarla bir BT mülakat soruları kütüphanesi.
Bağış Yap