#!/usr/bin/env python # -*- coding:utf8 -*- import httplib from StringIO import StringIO from lxml import objectify def read(): conn = httplib.HTTPConnection("www.wettermichel.de") conn.request("GET", "/weatherdata/params3.xml") response = conn.getresponse() assert response.status == 200, "Site status code == 200" xml = objectify.parse( response ) conn.close() return xml def insert(name, value, valueType): conn = httplib.HTTPConnection("127.0.0.1:8000") conn.request("PUT", "/sensor/{n}".format(n=name), "value={v}&type={t}".format(v=value, t=valueType)) response = conn.getresponse() assert response.status == 200, "put status code == 200" conn.close() for keyval in read().xpath("/data/*"): if keyval.tag == "entry": continue if isinstance(keyval, objectify.IntElement): insert("de.wettermichel.{n}".format(n=keyval.tag), keyval.text, "int") elif isinstance(keyval, objectify.FloatElement): insert("de.wettermichel.{n}".format(n=keyval.tag), keyval.text, "float") elif isinstance(keyval, objectify.StringElement): # ignore strings pass else: print "ignore other: %s %s" % (keyval.tag, keyval.__class__) # vim: autoindent tabstop=4 shiftwidth=4 expandtab softtabstop=4 filetype=python