Modules, Requests und arbeiten mit APIs

 0. Importiere die Module requests und pandas, die verwenden würdest


In [22]:
import requests
import pandas as pd

1. Suche ein paar Beispiele von APIs. Von solchen, die mit und ohne Schlüssel, verwendet werden können und liste sie auf.


In [23]:
http://rpc.geocoder.us/service
http://api.nytimes.com/svc/search/v1
http://www.openhazards.com/data/GetEarthquakeProbability
http://postcodes.io
http://open-platform.theguardian.com/access/
https://api.citybik.es/v2/


  File "<ipython-input-23-c9ff8aaf979e>", line 1
    http://rpc.geocoder.us/service
          ^
SyntaxError: invalid syntax

 2. Lese eine dieser APIs mit requests ein und rufe die Ergebnisse auf.


In [ ]:
url1 = 'http://api.openhazards.com/GetEarthquakeProbability?q=San+Francisco,+CA&m=6.8&r=100'

In [ ]:
response = requests.get(url1)

In [ ]:
response

In [ ]:
response.text

In [ ]:
response.json

3. Zurück zum Erdbeben API. Wie viele Erdbeben wurden im August 2017 verzeichnet?


In [24]:
url_august = 'https://earthquake.usgs.gov/fdsnws/event/1/count?starttime=2017-08-01&endtime=2017-08-31'

In [25]:
response = requests.get(url_august)

In [26]:
response


Out[26]:
<Response [200]>
response.text

4. Und wie viele Erdbeben im Juli?


In [27]:
url_juli = 'https://earthquake.usgs.gov/fdsnws/event/1/count?starttime=2017-07-01&endtime=2017-07-31'
response = requests.get(url_juli)

In [28]:
response


Out[28]:
<Response [200]>

In [29]:
response.text


Out[29]:
'11555'

 5. In welchem Monat des aktuellen Jahres wurden am meisten Erdbeben verzeichnet?


In [30]:
month = ["01, "02", "03", "04]
url


  File "<ipython-input-30-3a629cee8908>", line 1
    month = ["01, "02", "03", "04]
                    ^
SyntaxError: invalid token

In [ ]:
url_jan = 'https://earthquake.usgs.gov/fdsnws/event/1/count?starttime=2017-01-01&endtime=2017-01-31'

In [ ]:


In [ ]:
response = requests.get(url_jan)

In [ ]:
response

In [ ]:
response.text

In [ ]:
url_feb = 'https://earthquake.usgs.gov/fdsnws/event/1/count?starttime=2017-02-01&endtime=2017-02-28'

In [ ]:
response = requests.get(url_feb)

In [ ]:
response

In [ ]:
response.text

In [ ]:
url_märz = 'https://earthquake.usgs.gov/fdsnws/event/1/count?starttime=2017-03-01&endtime=2017-03-31'

In [ ]:
response = requests.get(url_märz)

In [ ]:
response

In [ ]:
response.text

In [ ]:
url_april = 'https://earthquake.usgs.gov/fdsnws/event/1/count?starttime=2017-04-01&endtime=2017-04-30'

In [ ]:
response = requests.get(url_april)
response

In [ ]:
response.text

In [34]:
url_mai = 'https://earthquake.usgs.gov/fdsnws/event/1/count?starttime=2017-05-01&endtime=2017-05-31'

In [35]:
response = requests.get(url_mai)

In [36]:
response


Out[36]:
<Response [200]>
response.text

In [40]:
url_juni = 'https://earthquake.usgs.gov/fdsnws/event/1/count?starttime=2017-06-01&endtime=2017-06-30'

In [41]:
response = requests.get(url_juni)

In [42]:
response


Out[42]:
<Response [200]>

In [43]:
response.text


Out[43]:
'9880'

In [ ]:
url_juli = 'https://earthquake.usgs.gov/fdsnws/event/1/count?starttime=2017-07-01&endtime=2017-07-31'
response = requests.get(url_juli)

In [ ]:
response
response.text

In [ ]:
url_september = 'https://earthquake.usgs.gov/fdsnws/event/1/count?starttime=2017-09-01&endtime=2017-09-30'

In [ ]:
response = requests.get(url_september)

In [ ]:
response

In [ ]:
response.text

In [ ]:

 6. Wandle das in einen Pandas Dataframe um


In [31]:
dct_lst = [{'Monat' : 'Januar', 'Erdbeben' : 11074}, {'Monat' : 'Februar', 'Erdbeben' : 7576}, {'Monat' : 'März', 'Erdbeben' : 8871}, {'Monat' : 'April', 'Erdbeben' : 10409}, {'Monat' : 'Mai', 'Erdbeben' : '?'}, {'Monat' : 'Juni', 'Erdbeben' : 9880}, {'Monat' : 'Juli', 'Erdbeben' : 11252}, {'Monat' : 'August', 'Erdbeben' : '?'}, {'Monat' : 'September', 'Erdbeben' : 9642}]

In [32]:
pd.DataFrame(dct_lst)


Out[32]:
Erdbeben Monat
0 11074 Januar
1 7576 Februar
2 8871 März
3 10409 April
4 ? Mai
5 9880 Juni
6 11252 Juli
7 ? August
8 9642 September

In [47]:
df = pd.DataFrame(dct_lst)
df.sort_values(by='Monat')


Out[47]:
Erdbeben Monat
3 10409 April
7 ? August
1 7576 Februar
0 11074 Januar
6 11252 Juli
5 9880 Juni
4 ? Mai
2 8871 März
8 9642 September

7. Und speicher das Ergebnis ab


In [33]:
df.to_csv('Monate.csv')


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-33-63bf6871605c> in <module>()
----> 1 df.to_csv('Monate.csv')

NameError: name 'df' is not defined

In [ ]:


In [ ]: