X-Git-Url: https://git.toastfreeware.priv.at/chrisu/seepark.git/blobdiff_plain/d95badd413aaa29e936d6225f08d5342f63b48c0..26256314244db4e501c6514d46ee65b88d65675c:/owm.py diff --git a/owm.py b/owm.py index c36064f..d97d57e 100755 --- a/owm.py +++ b/owm.py @@ -6,6 +6,8 @@ # cityid=.. # 3319578 for Obsteig, AT +# needed packaes: python3-mysqldb python3-sqlalchemy + from pprint import pprint import argparse import configparser @@ -14,7 +16,10 @@ import csv import datetime import math import json +import warnings +import sqlalchemy from sqlalchemy import create_engine +import MySQLdb.cursors from seeparklib.openweathermap import openweathermap_json @@ -47,7 +52,7 @@ def extractweatherdata(w): data['winddegrees'] = w['wind']['deg'] if 'deg' in w['wind'] else math.nan data['winddirection'] = degToCompass(data['winddegrees']) - data['precipitation'] = w['rain']['3h'] if 'rain' in w else math.nan + data['precipitation'] = w['rain']['3h'] if 'rain' in w and w['rain'].get('3h') else math.nan data['visibility'] = w.get('visibility', math.nan) return data @@ -85,8 +90,11 @@ def write_db(config, url, weather_json, weather_data): row[key] = None sql_columns = list(row.keys()) sql_values = list(row.values()) - sql = 'insert into openweathermap ({}) values ({})'.format(', '.join(sql_columns), ','.join(['%s'] * len(sql_columns))) - conn.execute(sql, *sql_values) + sql = 'insert ignore into openweathermap ({}) values ({})'.format(', '.join(sql_columns), ','.join(['%s'] * len(sql_columns))) + with warnings.catch_warnings(): + # ignore _mysql_exceptions.Warning: Duplicate entry '3319578-2018-08-01 20:50:00' for key 'cityid_datetime' + warnings.simplefilter("ignore", category=MySQLdb.cursors.Warning) + conn.execute(sql, *sql_values) conn.close()