Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!

Usługi sieciowe służą do wymiany informacji za pomocą protokołu HTTP. Zwykle ten protokół wykorzystywany jest do przesyłania stron internetowych, ale zamiast kodu HTML mogą także zostać przesłane dane w formacie np. JSON czy XML. Usługi sieciowe mogą nie tylko zwracać jakieś dane, ale również je odbierać. W ten sposób często integrowane są systemy napisane w różnych językach programowania czy różne autonomiczne elementy jednej aplikacji, zwłaszcza na fali ostatniej mody na mikroserwisy.
Do obsługi usług sieciowych w Pythonie mamy moduł "requests", który trzeba zaimportować do naszego skryptu zanim zaczniemy z niego korzystać. Poniżej przykład korzystania z takich danych zdalnych. Wprawdzie użyte tutaj wywołanie http prowadzi do pliku statycznego, ale w zasadzie nie ma to znaczenia, bo pod tym adresem równie dobrze mogłaby znajdować się usługa sieciowa która zwróciłaby dane w takiej samej formie:
import requests
odpowiedz=requests.get("http://jsystems.pl/static/blog/python/dane.json",auth=('user','pass'))
print(odpowiedz.status_code)
dane = odpowiedz.json()
print(dane)
Nawiązanie połączenia z usługą odbywa się za pomocą funkcji "get" która za parametr przyjmuje adres usługi. Zwraca ona obiekt odpowiedzi zawierający same dane, ale też dodatkowe informacje nagłówkowe. Jedną z takich informacji jest naprzykład kod statusu, który tu wyświetlam w linii 3. Kod o numerze 200 oznacza prawidłową odpowiedź. To są te same statusy co i przy każdym innym wywołaniu http - czyli np. 404 oznacza brak zasobu do którego się odwołujemy. W funkcji get pojawia się tu jeszcze jeden parametr - auth. Jest on opcjonalny, służy do ewentualnej autoryzacji która w tym przypadku jest całkiem zbędna.
Sam obiekt odpowiedzi jest obiektem opakowującym, dlatego jeśli zechcemy wydłubać z niego dane wywołujemy dodatkowo funkcję "json" która to zwraca nam je w formacie słownika. Wynik działania:
{'imie': 'Andrzej', 'nazwisko': 'Klusiewicz', 'adres': {'miasto': 'Warszawa', 'kod': '02-019'}, 'jezyki': ['polski', 'angielski', 'Java', 'R', 'Python', 'PL/SQL']}
Gdybym się zechciał dobrać do konkretnej wartości w danych, to dalej postępuję tak jak z każdymi innymi danymi zawartymi w strukturze słownika. Poniżej przykład odczytania miasta z adresu zawartego w zwróconych danych:
import requests
odpowiedz=requests.get("http://jsystems.pl/static/blog/python/dane.json")
dane = odpowiedz.json()
print(dane['adres']['miasto'])
Do przesyłania danych do usług sieciowych wykorzystujemy ten sam moduł. Przygotowałem sobie pusty słownik "dane" który następnie przesyłam do usługi sieciowej za pomocą funkcji "post". Funkcja ta poza adresem i danymi przyjmuje również parametr "headers" który służy do przekazywania informacji m.in o typie zawartości przesłanych informacji. Podobnie jak funkcja "get" przyjmuje również parametr "auth" którego tu jednak nie użyłem:
import requests
dane=dict()
odpowiedzWysylka=requests.post("http://jsystems.pl/static/blog/python/dane.json",data=dane,headers={"Content-Type":"application/json"})
print(odpowiedzWysylka.status_code)
Ten kurs daje Ci solidne podstawy Pythona. Jeśli chcesz pójść dalej i pod okiem trenera dojść od pierwszej linijki kodu do własnego modelu uczenia maszynowego, sprawdź nasze pięciodniowe szkolenie Python od podstaw, przez analizę danych, do machine learning. Pierwsze trzy dni to Python w praktyce: typy i kolekcje, instrukcje warunkowe i pętle, funkcje, moduły i pakiety, pliki tekstowe, usługi sieciowe oraz praca z bazą PostgreSQL. Czwarty dzień to analiza danych w pandas (wczytywanie CSV, TSV i XLS, filtrowanie, agregacje, statystyki) i wizualizacja w Matplotlib, Seaborn oraz Plotly. Piąty dzień to uczenie maszynowe w scikit-learn: regresja liniowa i logistyczna, drzewa decyzyjne, las losowy, XGBoost, walidacja predykcji, dobór hiperparametrów i przeciwdziałanie przeuczeniu. Szkolenie ma terminy gwarantowane, czyli odbywa się niezależnie od wielkości grupy.
Szkolenie Python od podstaw, przez analizę danych, do machine learning
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Komentarze (0)
Brak komentarzy...