21 พฤศจิกายน 2558

Published พฤศจิกายน 21, 2558 by with 1 comment

แปลงสกุลเงินในภาษาไพทอน

เนื่องจากภาษาไพทอน ไม่ได้มีนักพัฒนาได้พัฒนาโมดูลสำหรับแปลงสกุลเงินในภาษาไพทอนออกมา เราจึงต้องพัฒนากันเองครับ


ในการแปลงสกุลเงิน เพื่อให้ข้อมูลมีความทันสมัยที่สุด จึงต้องออนไลน์ ใช้ข้อมูลจากอินเทอร์เน็ต ในกูเกิลค้นคีย์ "conversion monetary api" จะพบเว็บไซต์ให้บริการด้านนี้จำนวนมาก ผมเลือก fixer.io

fixer.io เป็นบริการ API ให้ข้อมูลการแลกเปลี่ยนสกุลเงิน (ใช้งานได้ฟรี) โดยใช้ข้อมูลจากธนาคาร European Central มีการปรับข้อมูลทุกวันระหว่างเวลา 3PM CET

API สำหรับแปลงสกุลเงิน 2 สกุล
GET http://api.fixer.io/latest?symbols=USD,GBP
ผลลัพธ์
{
    "base": "EUR",
    "date": "2015-11-20",
    "rates": {
        "GBP": 0.701,
        "USD": 1.0688
    }
}

การเขียนโปรแกรมแปลงสกุลเงินในภาษาไพทอนนี้ ผมเลือกใช้โมดูล requests เข้ามาช่วยในเรื่องการดึงข้อมูลจาก API

สามารถติดตั้งโมดูล requests ได้จากคำสั่ง pip:
pip install requests

มาลงมือลองเขียนโค้ดกันดูนะครับ
import requests
symbols = []
symbols.append("USD") # เพิ่ม index แรก คือ "USD"
symbols.append("THB") # เพิ่ม index ที่ 2 คือ "THB"

r = requests.get('https://api.fixer.io/latest?symbols='+symbols[0]+','+symbols[1]) # ดึงข้อมูล

rates = eval(r.text) # ดึงข้อมูล json ออกมาจากสตริง
symbols1 = rates['rates'][symbols[0]] # ดึงข้อมูลสกุลเงิน "USD" ออกมา
symbols2 = rates['rates'][symbols[1]] # ดึงข้อมูลสกุลเงิน "THB" ออกมา
print("Currency Converter : {} {} = {} {}".format(symbols1, symbols[0], symbols2,symbols[1])) # แสดงผล
ผลลัพธ์
Currency Converter : 1.0688 USD = 38.199 THB

จะเห็นได้ว่า บทความนี้ผมได้ใช้ทั้งเรื่อง list , API , eval , โมดูล และ String formatting เข้ามาเกี่ยวข้องด้วย
อ่านเพิ่มเติม String formatting ใน Python
fixer.io API http://fixer.io

ลองนำไปประยุกต์ใช้งานกันดูนะครับ

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

1 ความคิดเห็น:

แสดงความคิดเห็นได้ครับ :)