Python ile Web Servis Kullanmak

Python ile Web Servis Kullanmak

Python json verisi ile çalışmak için json ve simplejson modüllerini barındırır. JSON işlemleri için bu modüllerin birisinin eklenmesi gerekir.

Bir web servisine erişmek istiyorsak öncelikli olarak URL bilgisine sahip olmamız gerekir. Web servisin URL bilgisine sahipsek kullanacağımız servis hakkındaki dokümantasyonları okumakta fayda vardır. Birçok web servis farklı amaçlara hizmet eden onlarca metot barındırabilir. Dokümantasyonları incelemek kullanacağımız web servisle neler yapabileceğimiz konusunda bize fikir verecektir. Dokümantasyonlarda web servisin nasıl kullanılabileceği, ne türden veri döndürdüğü gibi bilgiler bulunur.

Web Servis Kullanırken Hangi Modüllere İhtiyacımız Var?

Web servislere talep göndermek ve almak için requests modülü kullanılabilir. Benzer görevleri yapan urllib2 modülü de kullanılabilir. Servisten döner veriyi json olarak işleyebilmek için json veya simplejson modüllerine ihtiyacımız olacak.

  • requests

  • json

pip3 install requests  

requests modülününü kullanımıyla ilgili bilgilere aşağıdaki bağlantıdan ulaşabilirsiniz.

http://docs.python-requests.org/en/master/#

Web Servise Talepte Bulunmak

Aşağıdaki python kodu bir web servisine nasıl talepte bulunabileceğimizi gösterir. Servis bize json tipinde bir veri döndürüyorsa json modülünü kullanarak dönen veriyi işleyebiliriz.

r = requests.get("http://services.groupkt.com/country/get/all")
r.text

JSON Veriyi Dönüştürmek

Json modülünü kullanarak web servisinden elde ettiğimiz veriyi dönüştürebiliriz. Mesela bir json dizisi geliyorsa bu diziyi python dizisi olarak ele alabiliriz. Bunun için aşağıdaki komut kullanılır.

Veri = json.loads(r.text)

json modülünü kullanarak bir python nesnesini json stringine dönüştürmek istiyorsak aşağıdaki metot kullanılır.

Json.dumps()

Tüm kodlarımızı bir arada görelim.

#Gerekli modüller içe aktarılıyor
import requests
import json
#Web servise talepte bulunuyoruz
veri = requests.get("http://services.groupkt.com/country/get/all")
#Web servisten json formatında text olarak dönen veri python sözlük dizisine dönüştürülüyor
donenVeri = json.loads(veri.text)
#Web servisten çekilen veri üzerinde döngü oluşuturularak sonuçlar ekrana yazılıyor
for item in donenVeri['RestResponse']['result']:
    
    print("İsim:", (item['name']))
    print("alfa2 kod:",item['alpha2_code'],)
    print("alfa3 kod:",item['alpha3_code'])
    print(".........................")

Yukarıdaki örnekte kullanılan web servisten dönne veri yapısında RestResponse nesnesi içinde result ismli bir dizi olarak sonuçlar döndülmektedir. Bu sebeple üzerinde döngü oluşturulan dizi donenVeri[‘RestResponse’][‘result’] şeklinde elde edilmiştir.

Bir Cevap Yazın