Greifen Sie mit Python auf die Web-API zu, um IoT-Daten zu registrieren / zu erfassen (dweet.io, Requests, HTTPie).

Verwenden wir WebAPI, um dweet.io, einen IoT-Datenmessaging-Dienst, zu verwenden. Das folgende Bild zeigt das Plant Status Monitoring Dashboard, das mit den Diensten von Raspberry Pi und dweet.io erstellt wurde. (Details werden in einem anderen Artikel vorgestellt)

スクリーンショット 2017-05-08 12.44.21.png

Methode 1. Greifen Sie mit dem Befehl Terminal auf die Web-API zu

Selbst wenn Sie Python am Ende ausführen lassen, ist es praktisch, wenn Sie den Vorgang schnell mit dem Terminal überprüfen können.

Installieren Sie HTTPie

mac


$ brew install httpie

Es ist eine Eisenplattenbibliothek mit 30.000 Githubsternen! Die Highlights machen den Response-Header sehr einfach zu sehen.

httpie.png

Nach der Installation können Sie die HTTP-Methode mit dem Befehl http verwenden. (Standard ist die GET-Methode)

Datenregistrierung

dweet.io kann Daten einfach registrieren, indem eine Abfrage von "? Key = value" an die URL von "https://dweet.io/dweet/for/ " gesendet wird. (Sie können JSON-Daten auch mit der POST-Methode registrieren (später beschrieben).)

# -v Optionale Anforderung_Header kann auch ausgegeben werden
$ http https://dweet.io/dweet/for/my-thing-name?hello=world

Antwort von httpie_Header-Ausgabe


HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Encoding: gzip
Content-Type: application/json
Date: Mon, 08 May 2017 03:13:38 GMT
Transfer-Encoding: chunked

{
    "by": "dweeting",
    "the": "dweet",
    "this": "succeeded",
    "with": {
        "content": {
            "hello": "world"
        },
        "created": "2017-05-08T03:13:38.230Z",
        "thing": "my-thing-name",
        "transaction": "54f19ae4-3428-4ea3-8275-1a77d49a11a0"
    }
}

Daten bekommen

dweet.io kann Daten im JSON-Format abrufen, indem mit der GET-Methode auf die URL von https://dweet.io/get/latest/dweet/for/ zugegriffen wird.

$ http https://dweet.io/get/latest/dweet/for/my-thing-name

Antwort von httpie_Header-Ausgabe 2


HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Encoding: gzip
Content-Type: application/json
Date: Mon, 08 May 2017 03:13:55 GMT
Transfer-Encoding: chunked

{
    "by": "getting",
    "the": "dweets",
    "this": "succeeded",
    "with": [
        {
            "content": {
                "hello": "world"
            },
            "created": "2017-05-08T03:13:38.230Z",
            "thing": "my-thing-name"
        }
    ]
}

Methode 2. Greifen Sie über Python auf die Web-API zu

Installieren Sie Requests

$ pip install requests

Requests ist eine benutzerfreundliche HTTP-Bibliothek für Python mit einer sehr intuitiven API. Dies ist auch eine Bibliothek mit 25000 und Eisenplatten von GitHub Stars.

Die Verwendung der Anforderungsbibliothek ist wie folgt. Offizieller Schnellstart ist ein sehr zusammenhängendes Dokument und wird empfohlen.

import requests

#get
r = requests.get('url')
#get:Mit Abfrage
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('url', params=payload)

#post
r = requests.post('url', data = {'key':'value'})

#cookies
r = requests.get('url')
cookie = r.cookies['cookie_name']
r = requests.get('url', cookies=cookie)

#response
print(r.url) 
print(r.status_code)
print(r.headers)
print(r.text)
print(r.content)
print(r.json())

Was passiert, wenn die URL falsch ist:

Datenregistrierung / -erfassung

Sie können Daten in tweet.io mithilfe von Anfragen wie folgt registrieren / erfassen.

import requests
import pprint
import time

#Datenregistrierung: post
for i in range(10):
  r = requests.post('https://dweet.io/dweet/for/iot-data', data = {'temp':'23', 'humid':'40'})
  time.sleep(1)

#Daten bekommen: get
r = requests.get("https://dweet.io/get/latest/dweet/for/iot-data")
pprint.pprint(r.json())

Ergebnis der Terminalausgabe


{u'by': u'getting',
 u'the': u'dweets',
 u'this': u'succeeded',
 u'with': [{u'content': {u'humid': 40, u'temp': 23},
            u'created': u'2017-05-08T04:04:18.887Z',
            u'thing': u'iot-data'}]}

Referenz: http://qiita.com/ogawatachi/items/d178bce8a9e60b5d459b

Recommended Posts

Greifen Sie mit Python auf die Web-API zu, um IoT-Daten zu registrieren / zu erfassen (dweet.io, Requests, HTTPie).
Datenpipeline-Aufbau mit Python und Luigi
[Fortsetzung] Versuchen Sie den Zugriff auf das SPS-Register mit Python
Registrieren Sie Tickets mit der Redmine-API mithilfe von Python-Anforderungen
Untersuchen Sie den Java- und Python-Datenaustausch mit Apache Arrow
Abrufen von Daten aus der Datenbank über ODBC mit Python (Access)
Datenanalyse mit Python 2
Wiederholen Sie den Vorgang mit Python-Anforderungen
Datenanalyse mit Python
Erstellen Sie Anwendungen, registrieren Sie Daten und teilen Sie sie mit einer einzigen E-Mail
Befreien Sie sich mit Python und regulären Ausdrücken von schmutzigen Daten
Löse das Spiralbuch (Algorithmus und Datenstruktur) mit Python!
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
Senden und Empfangen von Daten mit MQTT über die Watson IoT Platform
Mit Python erstellte Beispieldaten
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Holen Sie sich Youtube-Daten mit Python
Python mit Pyenv und Venv
Greifen Sie mit Python auf Google Drive zu
Funktioniert mit Python und R.
Lesen von JSON-Daten mit Python
[AWS] Suchen und Abrufen der erforderlichen Daten aus S3-Dateien mit S3 Select
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Der HTTP-Zugriff über einen Proxy in Python Web Scraping war bei Anfragen einfach
Verschieben Sie Daten mit Python Change / Delete (Writer und Reader) nach LDAP.