CSV, JSON และวันที่เวลา
หลังจากอ่านเขียนไฟล์พื้นฐานแล้ว รูปแบบที่ต้องเจอบ่อยคือ CSV, JSON และข้อมูลวันที่เวลา
อ่าน CSV
import csv
with open("orders.csv", "r", encoding="utf-8") as file:
reader = csv.DictReader(file)
for row in reader:
print(row["order_id"], row["amount"])
ตัวอย่างไฟล์ orders.csv
order_id,customer,amount
1,Ann,1200
2,Bob,850
เขียน CSV
import csv
rows = [
{"order_id": 1, "amount": 1200},
{"order_id": 2, "amount": 850},
]
with open("summary.csv", "w", encoding="utf-8", newline="") as file:
fieldnames = ["order_id", "amount"]
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(rows)
อ่าน JSON
import json
with open("config.json", "r", encoding="utf-8") as file:
config = json.load(file)
print(config["app_name"])
ตัวอย่างไฟล์ config.json
{
"app_name": "demo",
"debug": true
}
เขียน JSON
import json
data = {"status": "success", "count": 10}
with open("result.json", "w", encoding="utf-8") as file:
json.dump(data, file, ensure_ascii=False, indent=2)
datetime
from datetime import datetime
now = datetime.now()
print(now)
print(now.strftime("%Y-%m-%d"))
แปลงข้อความเป็น datetime
date_text = "2024-05-22"
date_value = datetime.strptime(date_text, "%Y-%m-%d")
print(date_value)
ตัวอย่างสรุปยอดขายจาก CSV
import csv
total = 0
with open("orders.csv", "r", encoding="utf-8") as file:
reader = csv.DictReader(file)
for row in reader:
total += float(row["amount"])
print(f"total={total:.2f}")
แบบฝึกหัด
- สร้างไฟล์
orders.csv - อ่านข้อมูลด้วย
csv.DictReader - คำนวณยอดรวม
- เขียนผลลัพธ์เป็น
summary.json - เพิ่ม field วันที่รันงานด้วย
datetime.now()