Julkisten data-API:en käyttäminen
OpenWeatherMap, Wikipedia ja julkiset viranomais-API:t – käytännön esimerkkejä datan keruusta.
Julkisten data-API:en käyttäminen on ilmainen Oppikaa tekoälyä Pythonilla-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Oppikaa tekoälyä Pythonilla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.
Harjoittelu julkisilla API-rajapinnoilla
Paras tapa oppia tiedonkeruuta on käyttää oikeita API-rajapintoja. Tässä oppitunnissa käytetään kolmea helppokäyttöistä rajapintaa:
- JSONPlaceholder — harjoitteluun tarkoitettu valheellinen REST API, joka ei vaadi avainta
- OpenWeatherMap — oikeita säätietoja tarjoava rajapinta, johon saa ilmaisen API-avaimen
- Wikipedia API — artikkelisisältöä ja hakua tarjoava rajapinta
JSONPlaceholder harjoitteluun
JSONPlaceholder tarjoaa valheellisia julkaisuja, käyttäjiä ja kommentteja ilman todennusta. Se sopii erinomaisesti pyyntö- ja jäsentämiskoodin testaamiseen.
import requests
resp = requests.get("https://jsonplaceholder.typicode.com/posts", timeout=10)
resp.raise_for_status()
posts = resp.json()
print(len(posts), "posts")
print(posts[0]["title"])Vastauksesta DataFrame-työnkulkuun
Vakiotyönkulku on seuraava: noutakaa JSON, ja ladatkaa se sitten suoraan DataFrameen analysoitavaksi.
import pandas as pd
posts = requests.get("https://jsonplaceholder.typicode.com/posts", timeout=10).json()
df = pd.DataFrame(posts)
print(df.head())
print(df["userId"].value_counts())OpenWeatherMap — avaimen hankkiminen
OpenWeatherMap vaatii ilmaisen API-avaimen, joka välitetään appid-parametrina. Älkää sijoittako avaimia koodiin, vaan lukekaa ne ympäristömuuttujasta.
import os
API_KEY = os.environ["OWM_API_KEY"] # set OWM_API_KEY in your shellOpenWeatherMap — kyselyparametrit
Nykyisen sään päätepiste käyttää parametreja q (kaupunki), appid (avain) ja units (metrijärjestelmä tai imperiaalinen järjestelmä).
import requests, os
params = {
"q": "Istanbul",
"appid": os.environ["OWM_API_KEY"],
"units": "metric",
}
resp = requests.get("https://api.openweathermap.org/data/2.5/weather", params=params, timeout=10)
resp.raise_for_status()
data = resp.json()Sisäkkäisten JSON-kenttien poimiminen
Oikeiden API-rajapintojen vastaukset ovat usein syvästi sisäkkäisiä. Siirtykää sisemmälle ketjutettujen avainten avulla ja käyttäkää .get()-metodia oletusarvojen kanssa kentille, jotka saattavat puuttua.
temp = data["main"]["temp"]
humidity = data["main"]["humidity"]
desc = data["weather"][0]["description"]
print(f"{temp} C, {humidity}% humidity, {desc}")Säätietojen kerääminen useista kaupungeista
Käykää kaupungit silmukassa läpi, litistäkää tarvitsemienne kenttien arvot sanakirjojen luetteloksi ja muodostakaa sitten DataFrame.
cities = ["Istanbul", "London", "Tokyo"]
rows = []
for c in cities:
p = {"q": c, "appid": os.environ["OWM_API_KEY"], "units": "metric"}
d = requests.get("https://api.openweathermap.org/data/2.5/weather", params=p, timeout=10).json()
rows.append({"city": c, "temp": d["main"]["temp"], "desc": d["weather"][0]["description"]})
import pandas as pd
df = pd.DataFrame(rows)Wikipedia API
Wikipedia API tarjoaa haun ja artikkelisisällön. Se odottaa action- ja format=json-parametreja sekä kuvailevaa User-Agent-otsaketta.
params = {
"action": "query",
"list": "search",
"srsearch": "machine learning",
"format": "json",
}
headers = {"User-Agent": "data-collector/1.0 (you@example.com)"}
resp = requests.get("https://en.wikipedia.org/w/api.php", params=params, headers=headers, timeout=10)
results = resp.json()["query"]["search"]Artikkelikatkelmien noutaminen
Käyttäkää prop=extracts-parametria yhdessä exintro=True-asetuksen kanssa artikkelin johdantokappaleen noutamiseen — tämä on kätevää tekstiaineistojen rakentamisessa.
params = {
"action": "query",
"prop": "extracts",
"exintro": True,
"explaintext": True,
"titles": "Artificial intelligence",
"format": "json",
}
resp = requests.get("https://en.wikipedia.org/w/api.php", params=params, timeout=10)
pages = resp.json()["query"]["pages"]
for pid, page in pages.items():
print(page["extract"][:300])API-dokumentaation lukeminen
Jokainen API-rajapinta on erilainen. Lukekaa dokumentaatiosta ennen koodaamista seuraavat asiat: perus-URL-osoite, pakolliset parametrit, todennusmenetelmä, vastauksen rakenne ja nopeusrajoitukset.
Testatkaa yksi pyyntö vuorovaikutteisesti, tarkastelkaa arvoa resp.json() ja rakentakaa silmukka todellisen rakenteen ympärille.
API-rajapintojen vastuullinen käyttö
Julkiset API-rajapinnat ovat yhteisiä resursseja. Kunnioittakaa niitä:
- Lähettäkää tunnistava
User-Agent - Välimuistittakaa tulokset, jotta ette hae samoja tietoja uudelleen
- Odottakaa pyyntöjen välillä ja noudattakaa nopeusrajoituksia
- Lukekaa kunkin API-rajapinnan käyttöehdot ja noudattakaa niitä
Pikatarkistus: harjoittelu-API
Haluatte testata pyyntö- ja jäsentämiskoodianne ilman API-avaimen rekisteröimistä.
Kertaus: julkiset data-API-rajapinnat
Harjoittelitte tiedon keräämistä oikeista API-rajapinnoista:
- JSONPlaceholder todennusta tarvitsemattomaan harjoitteluun
- OpenWeatherMap, jonka parametreja ovat
q,appidjaunitsja jonka avain luetaan ympäristöstä - Wikipedia API hakuun ja artikkelikatkelmien noutamiseen
- Noutamisesta DataFrameen etenevä työnkulku sekä sisäkkäisen JSON-datan käsittely
- Hyvät toimintatavat: User-Agent, välimuisti, nopeusrajoitukset ja käyttöehdot
Tiedonkeruu on nyt valmis. Seuraavaksi käsittelette säännöllisiä lausekkeita tekstipohjaisessa tekoälyssä.
Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 53
- Oppitunnit
- 225
Usein kysytyt kysymykset
Onko oppitunti ”Julkisten data-API:en käyttäminen” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Oppikaa tekoälyä Pythonilla-oppimispolun 3 oppituntia, myös oppitunnin “Julkisten data-API:en käyttäminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Julkisten data-API:en käyttäminen”?
OpenWeatherMap, Wikipedia ja julkiset viranomais-API:t – käytännön esimerkkejä datan keruusta. Harjoittelet Oppikaa tekoälyä Pythonilla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Oppikaa tekoälyä Pythonilla-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Oppikaa tekoälyä Pythonilla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Julkisten data-API:en käyttäminen”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Oppikaa tekoälyä Pythonilla-oppitunnilla?
Kyllä. Jokainen Oppikaa tekoälyä Pythonilla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- REST API -rajapintojen perusteet datan keruuseen
- Sivutus ja suurten aineistojen kerääminen
- Kerätyn datan tehokas tallentaminen
- Julkisten data-API:en käyttäminen