# Web servis üzerinden istek yapabilmesi için gerekli kütüphane
import requests
# İstek sonrası elde edilen verinin düzenlenmesi ve işlenmesi için gerekli kütüphane
import pandas as pd
Şeffaflık Platformu Web Servis isteklerinde istek başlıkları ile birlikte kabul edilecek olan veri tipi (accept) ve kimlik doğrulama (x-ibm-client-id) bilgileri gönderilmelidir. Kimlik doğrulama için gerekli istemci taniticisi (clint id) şeffaflık platformu web servis kaydı yapılarak temin edilmelidir.
headers = {
'x-ibm-client-id': "Tanımlanmış_İstemci_Tanıcısı",
'accept': "application/json"
}
Piyasa Takas Fiyatı (PTF) sorgulamasının yapılabilmesi için ilgili url kullanılmalıdır. Yapılacak olan diğer sorgulamalar için gerekli url'lere Şeffaflık Platformu Web Sitesinden ulaşılabilir.
ptf_url = "https://api.epias.com.tr/epias/exchange/transparency/market/day-ahead-mcp?startDate={}&endDate={}"
resp = requests.get(ptf_url.format("2019-01-01","2019-01-31"), headers=headers)
resp.raise_for_status()
İsteğin başarılı olması durumunda veri json formatında elde edilmektedir.
json_data = resp.json()
json_data
Verinin okunabilirliğinin arttırılması ve veri üzerinde gerekli düzenleme ve işlemlerin yapılabilmesi için pandas kütüphanesi kullanılabilir.
df = pd.DataFrame(json_data["body"]["dayAheadMCPList"])
df.head()
Tarih ve saat bilgileri date kolonuna apply methodu uygulanarak elde edilebilir.
df["Tarih"] = df["date"].apply(lambda x : pd.to_datetime(x[:10]))
df["Saat"] = df["date"].apply(lambda x : int(x[11:13]))
df.head()
Tarih ve saat kolonları ayrıştırıldığı için date kolonu kaldırılabilir.
df.drop(columns=["date"],inplace=True)
df.head()
Kolonlar tekrar adlandırılabilir ve kolonlar tekrardan sıralanadırılabilir.
df.columns = ["PTF", "Tarih", "Saat"]
df = df[["Tarih","Saat","PTF"]]
df.head()