def main(argv): # variables that are given as arguments with possible default values command = "" expect = "" verbose = False return_wanted = False try: opts, args = getopt.getopt(argv,"c:e:v:r",["command=","expect=","verbose","return"]) except getopt.GetoptError as err: print(err) usage() sys.exit(2) for opt, arg in opts: if opt in ("-c", "--command"): command = arg elif opt in ("-e", "--expect"): expect = arg elif opt in ("-v", "--verbose"): verbose = True elif opt in ("-r", "--return"): return_wanted = True if not command: usage() sys.exit(2) if expect: verbose = False # would interfere with "return" value ret = load(command,expect,verbose) if expect: if return_wanted: return ret else: print ret dboperator.close()
def load(command,expect,verbose=False): if verbose: show("begin with "+command) # no point in trying to show expect! sql = command ret = None try: # quick hack for getting return value. do fix me! if expect: resql = dboperator.get(sql) if verbose: show("command returned %d rows"%(len(resql))) # print out (as a return value) the entire result or row count or what, some kind of figuring? if expect=='row count': ret = len(resql) elif len(resql)==1 and expect in resql[0]: ret = resql[0][expect] else: ret = resql else: dboperator.execute(sql) except: show("Something went wrong. Over and out.") dboperator.close() exit(2) # lopeta virheeseen if verbose: show("ready") return ret
def load(command,expect,verbose=False): if verbose: show("begin with "+command) # no point in trying to show expect! sql = command ret = None try: # quick hack for getting return value. do fix me! if expect: resql = dboperator.get(sql) if verbose: show("command returned %d rows"%(len(resql))) # print out (as a return value) the entire result or row count or what, some kind of figuring? if expect=='row count': ret = len(resql) elif len(resql)==1 and expect in resql[0]: ret = resql[0][expect] else: ret = resql else: dboperator.execute(sql) except Exception, f: print(f) e = sys.exc_info()[0] #for debugging error 1.11.2018 VHä show("Something went wrong. Over and out. %s" % e) dboperator.close() exit(2) # lopeta virheeseen
def main(argv): # muuttujat jotka kerrotaan argumentein url = "" schema = "" table = "" condition = None try: opts, args = getopt.getopt(argv, "u:e:t:c", ["url=", "schema=", "table=", "condition="]) except getopt.GetoptError as err: print(err) usage() sys.exit(2) for opt, arg in opts: if opt in ("-u", "--url"): url = arg elif opt in ("-e", "--schema"): schema = arg elif opt in ("-t", "--table"): table = arg elif opt in ("-c", "--condition"): condition = arg if not url or not schema or not table: usage() sys.exit(2) load(url, schema, table, condition) dboperator.close()
def main(argv): # muuttujat jotka kerrotaan argumentein secure=False hostname,url,schema,table="","","","" postdata=None condition=None verbose=False rowcount = 500 try: opts,args=getopt.getopt(argv,"sH:u:e:t:p:c:v:r",["secure","hostname=","url=","schema=","table=","postdata=","condition=","verbose","rowcount="]) except getopt.GetoptError as err: print(err) usage() sys.exit(2) for opt,arg in opts: if opt in ("-s", "--secure"): secure=True elif opt in ("-H", "--hostname"): hostname=arg elif opt in ("-u", "--url"): url=arg elif opt in ("-e", "--schema"): schema=arg elif opt in ("-t", "--table"): table=arg elif opt in ("-p", "--postdata"): postdata=arg elif opt in ("-c", "--condition"): condition=arg elif opt in ("-v", "--verbose"): verbose=True elif opt in ("-r", "--rowcount"): rowcount=arg if not hostname or not url or not schema or not table: usage() sys.exit(2) load(secure,hostname,url,schema,table,postdata,condition,verbose, rowcount) dboperator.close()
def main(argv): # muuttujat jotka kerrotaan argumentein secure=False hostname,url,schema,table="","","","" postdata=None condition=None verbose=False try: opts,args=getopt.getopt(argv,"sH:u:e:t:p:c:v",["secure","hostname=","url=","schema=","table=","postdata=","condition=","verbose"]) except getopt.GetoptError as err: print(err) usage() sys.exit(2) for opt,arg in opts: if opt in ("-s", "--secure"): secure=True elif opt in ("-H", "--hostname"): hostname=arg elif opt in ("-u", "--url"): url=arg elif opt in ("-e", "--schema"): schema=arg elif opt in ("-t", "--table"): table=arg elif opt in ("-p", "--postdata"): postdata=arg elif opt in ("-c", "--condition"): condition=arg elif opt in ("-v", "--verbose"): verbose=True if not hostname or not url or not schema or not table: usage() sys.exit(2) load(secure,hostname,url,schema,table,postdata,condition,verbose) dboperator.close()
def load(sqlfile,migrate,verbose=False): show("begin "+sqlfile) number_togo = None if "__" in sqlfile: number_togo = int(sqlfile[sqlfile.rfind("/")+1:sqlfile.index("__",sqlfile.rfind("/")+1)]) if migrate and number_togo is not None: # migration install step 0 is special, just add the table for others if number_togo==0: loadsql(sqlfile,verbose) else: number_last = None result = dboperator.get("select max(number) as number from dbo.migration where phase='%s'"%(migrate)) if result[0]["number"] is not None: number_last = int(result[0]["number"]) if verbose: show("migrating %s which is going on at %s and now trying %s"%(migrate,number_last,number_togo)) if number_last is None or number_togo > number_last: show("Migrating from %s to %s"%(number_last,number_togo)) loadsql(sqlfile,verbose) result = dboperator.execute("insert into migration (phase,number) values ('%s',%s)"%(migrate,number_togo)) else: if verbose: show("skipping migration %s < %s"%(number_togo,number_last)) else: loadsql(sqlfile,verbose) dboperator.close() show("ready")
def main(argv): # variables from arguments with possible defaults hostname = os.getenv("OPINTOPOLKU") or "virkailija.testiopintopolku.fi" url = "/tarjonta-service/rest/v1/haku/findAll" schema = os.getenv("SCHEMA") or "sa" table = os.getenv("TABLE") or "koulutustarjonta_haku" verbose, debug = False, False try: opts, args = getopt.getopt( argv, "H:u:e:t:c:vd", ["hostname=", "url=", "schema=", "table=", "verbose", "debug"]) except getopt.GetoptError as err: print(err) usage() sys.exit(2) for opt, arg in opts: if opt in ("-H", "--hostname"): hostname = arg elif opt in ("-u", "--url"): url = arg elif opt in ("-e", "--schema"): schema = arg elif opt in ("-t", "--table"): table = arg elif opt in ("-v", "--verbose"): verbose = True elif opt in ("-d", "--debug"): debug = True if not hostname or not url or not schema or not table: usage() sys.exit(2) if debug: print("debugging") load(hostname, url, schema, table, verbose, debug) dboperator.close(debug)
def main(argv): # variables from arguments with possible defaults hostname = os.getenv("OPINTOPOLKU") or "virkailija.testiopintopolku.fi" url = "/tarjonta-service/rest/v1/hakukohde" schema = os.getenv("SCHEMA") or "sa" table = os.getenv("TABLE") or "koulutustarjonta_hakukohde" verbose,debug = False,False try: opts, args = getopt.getopt(argv,"H:u:e:t:c:vd",["hostname=","url=","schema=","table=","verbose","debug"]) except getopt.GetoptError as err: print(err) usage() sys.exit(2) for opt, arg in opts: if opt in ("-H", "--hostname"): hostname = arg elif opt in ("-u", "--url"): url = arg elif opt in ("-e", "--schema"): schema = arg elif opt in ("-t", "--table"): table = arg elif opt in ("-v", "--verbose"): verbose = True elif opt in ("-d", "--debug"): debug = True if not hostname or not url or not schema or not table: usage() sys.exit(2) if debug: print "debugging" load(hostname,url,schema,table,verbose,debug) dboperator.close(debug)
def load(secure, hostname, url, schema, table, codeset, verbose=False): if verbose: show("begin") row = makerow() dboperator.columns(row) if verbose: show("empty %s.%s" % (schema, table)) dboperator.empty(schema, table) url = url % codeset # replace placeholder if secure: httpconn = httplib.HTTPSConnection(hostname) show("load securely from " + hostname + url) else: httpconn = httplib.HTTPConnection(hostname) show("load from " + hostname + url) httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 for i in j: cnt += 1 row = makerow() row["koodi"] = jv(i, "koodiArvo") row["nimi"] = getnimi(i, "FI") row["nimi_sv"] = getnimi(i, "SV") row["nimi_en"] = getnimi(i, "EN") row["alkupvm"] = jv(i, "voimassaAlkuPvm") row["loppupvm"] = jv(i, "voimassaLoppuPvm") httpconn.request( 'GET', "/koodisto-service/rest/json/relaatio/sisaltyy-ylakoodit/%s" % i["koodiUri"]) rr = httpconn.getresponse() jj = json.loads(rr.read()) ss = "" for ii in jj: classification = "maanosat" level = "" if len(ii["koodiArvo"]) == 3: level = "3" elif len(ii["koodiArvo"]) == 2: level = "2" # else default if ii["koodisto"]["koodistoUri"] == classification: row[classification + level + "koodi"] = jv(ii, "koodiArvo") row[classification + level + "nimi"] = getnimi(ii, "FI") row[classification + level + "nimi_sv"] = getnimi(ii, "SV") row[classification + level + "nimi_en"] = getnimi(ii, "EN") if verbose: show("%d -- %s" % (cnt, row["koodi"])) dboperator.insert(hostname + url, schema, table, row) dboperator.close() if verbose: show("ready")
def load(secure, hostname, url, schema, table, codeset, verbose=False): if verbose: show("begin") # make "columnlist" separately (type has no meaning as we're not creating table) row = { 'koodisto': None, 'koodi': None, 'nimi': None, 'nimi_sv': None, 'nimi_en': None, 'alkupvm': None, 'loppupvm': None } # setup dboperator variables so insert works dboperator.columns(row) #show("empty sa_koodistot") #dboperator.empty("sa_koodistot") reqheaders = { 'Content-Type': 'application/json', 'Caller-Id': '1.2.246.562.10.2013112012294919827487.vipunen' } url = url % codeset address = hostname + url if secure: show("load securely from " + address) httpconn = httplib.HTTPSConnection(hostname) else: show("load from " + address) httpconn = httplib.HTTPConnection(hostname) httpconn.request('GET', url, headers=reqheaders) #httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 if verbose: show("delete from %s.%s where koodisto=%s" % (schema, table, codeset)) dboperator.remove(schema, table, "koodisto", codeset) for i in j: cnt += 1 # make "row" row["koodisto"] = codeset # columns row["koodi"] = i["koodiArvo"] row["nimi"] = getnimi(i, "FI") row["nimi_sv"] = getnimi(i, "SV") row["nimi_en"] = getnimi(i, "EN") row["alkupvm"] = i["voimassaAlkuPvm"] row["loppupvm"] = i["voimassaLoppuPvm"] if verbose: show("-- %s -- %d -- %s" % (codeset, cnt, row["koodi"])) dboperator.insert(address, schema, table, row) dboperator.close() if verbose: show("ready")
def load(secure,hostname,url,schema,table,codeset,verbose=False): if verbose: show("begin") row = makerow() dboperator.columns(row) if verbose: show("empty %s.%s"%(schema,table)) dboperator.empty(schema,table) url = url % codeset # replace placeholder if secure: httpconn = httplib.HTTPSConnection(hostname) show("load securely from "+hostname+url) else: httpconn = httplib.HTTPConnection(hostname) show("load from "+hostname+url) httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 for i in j: cnt += 1 row = makerow() row["koodi"] = jv(i,"koodiArvo") row["nimi"] = getnimi(i,"FI") row["nimi_sv"] = getnimi(i,"SV") row["nimi_en"] = getnimi(i,"EN") row["alkupvm"] = jv(i,"voimassaAlkuPvm") row["loppupvm"] = jv(i,"voimassaLoppuPvm") httpconn.request('GET', "/koodisto-service/rest/json/relaatio/sisaltyy-ylakoodit/%s" % i["koodiUri"]) rr = httpconn.getresponse() jj = json.loads(rr.read()) ss = "" for ii in jj: classification = "maanosat" level = "" if len(ii["koodiArvo"])==3: level = "3" elif len(ii["koodiArvo"])==2: level = "2" # else default if ii["koodisto"]["koodistoUri"] == classification: row[classification+level+"koodi"] = jv(ii,"koodiArvo") row[classification+level+"nimi"] = getnimi(ii,"FI") row[classification+level+"nimi_sv"] = getnimi(ii,"SV") row[classification+level+"nimi_en"] = getnimi(ii,"EN") if verbose: show("%d -- %s"%(cnt,row["koodi"])) dboperator.insert(hostname+url,schema,table,row) dboperator.close() if verbose: show("ready")
def load(schema,procedure,verbose=False): show("begin with "+schema+" "+procedure) sql = "execute "+schema+"."+procedure try: dboperator.execute(sql) except: show("Something went wrong. Probably procedure wasn't found or there is a permission problem. Over and out.") dboperator.close() exit(2) # lopeta virheeseen dboperator.close() show("ready")
def load(secure,hostname,url,schema,table,codeset,verbose=False,debug=False): if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" begin" row = makerow() dboperator.columns(row,debug) if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" empty %s.%s"%(schema,table) dboperator.empty(schema,table,debug) url = url % codeset # replace placeholder if secure: httpconn = httplib.HTTPSConnection(hostname) print strftime("%Y-%m-%d %H:%M:%S", localtime())+" load securely from "+hostname+url else: httpconn = httplib.HTTPConnection(hostname) print strftime("%Y-%m-%d %H:%M:%S", localtime())+" load from "+hostname+url httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 for i in j: cnt += 1 row = makerow() row["koodi"] = jv(i,"koodiArvo") row["nimi"] = getnimi(i,"FI") row["nimi_sv"] = getnimi(i,"SV") row["nimi_en"] = getnimi(i,"EN") row["alkupvm"] = jv(i,"voimassaAlkuPvm") row["loppupvm"] = jv(i,"voimassaLoppuPvm") httpconn.request('GET', "/koodisto-service/rest/json/relaatio/sisaltyy-ylakoodit/%s" % i["koodiUri"]) rr = httpconn.getresponse() jj = json.loads(rr.read()) ss = "" for ii in jj: if ii["koodisto"]["koodistoUri"] == "julkaisunpaaluokka": row["julkaisunpaaluokkakoodi"] = jv(ii,"koodiArvo") row["julkaisunpaaluokkanimi"] = getnimi(ii,"FI") row["julkaisunpaaluokkanimi_sv"] = getnimi(ii,"SV") row["julkaisunpaaluokkanimi_en"] = getnimi(ii,"EN") if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" %d -- %s"%(cnt,row["koodi"]) dboperator.insert(hostname+url,schema,table,row,debug) dboperator.close(debug) if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" ready"
def load(secure,hostname,url,schema,table,codeset,verbose=False,debug=False): if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" begin" row = makerow() dboperator.columns(row,debug) if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" empty %s.%s"%(schema,table) dboperator.empty(schema,table,debug) url = url % codeset # replace placeholder if secure: httpconn = httplib.HTTPSConnection(hostname) print strftime("%Y-%m-%d %H:%M:%S", localtime())+" load securely from "+hostname+url else: httpconn = httplib.HTTPConnection(hostname) print strftime("%Y-%m-%d %H:%M:%S", localtime())+" load from "+hostname+url httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 for i in j: cnt += 1 row = makerow() row["koodi"] = jv(i,"koodiArvo") row["nimi"] = getnimi(i,"FI") row["nimi_sv"] = getnimi(i,"SV") row["nimi_en"] = getnimi(i,"EN") row["alkupvm"] = jv(i,"voimassaAlkuPvm") row["loppupvm"] = jv(i,"voimassaLoppuPvm") httpconn.request('GET', "/koodisto-service/rest/json/relaatio/sisaltyy-ylakoodit/%s" % i["koodiUri"]) rr = httpconn.getresponse() jj = json.loads(rr.read()) ss = "" for ii in jj: if ii["koodisto"]["koodistoUri"] == "paatieteenala": row["paatieteenalakoodi"] = jv(ii,"koodiArvo") row["paatieteenalanimi"] = getnimi(ii,"FI") row["paatieteenalanimi_sv"] = getnimi(ii,"SV") row["paatieteenalanimi_en"] = getnimi(ii,"EN") if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" %d -- %s"%(cnt,row["koodi"]) dboperator.insert(hostname+url,schema,table,row,debug) dboperator.close(debug) if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" ready"
def load(database, schema, procedure, parameters, verbose=False): show("begin with " + database + " " + schema + " " + procedure + " " + parameters) sql = "execute " + database + "." + schema + "." + procedure if (parameters != ""): sql = "execute " + database + "." + schema + "." + procedure + " " + parameters result = dboperator.execute(sql) #succesful execution result returns 1, anything else is error message if (result != 1): show("A MSSQL error has been caught during executing " + procedure) show("Error code: " + result) dboperator.close() exit(2) # lopeta virheeseen dboperator.close() show("ready")
def load(sqlfile, migrate, verbose=False): show("begin " + sqlfile) number_togo = None if "__" in sqlfile: number_togo = int(sqlfile[sqlfile.rfind("/") + 1:sqlfile.index("__", sqlfile.rfind("/") + 1)]) if migrate and number_togo is not None: # migration install step 0 is special, just add the table for others if number_togo == 0: loadsql(sqlfile, verbose) else: number_last = None result = dboperator.get( "select max(number) as number from antero.dbo.migration where phase='%s'" % (migrate)) if result[0]["number"] is not None: number_last = int(result[0]["number"]) if verbose: show("migrating %s which is going on at %s and now trying %s" % (migrate, number_last, number_togo)) if number_last is None or number_togo > number_last: show("Migrating from %s to %s" % (number_last, number_togo)) loadsql(sqlfile, verbose) result = dboperator.execute( "insert into antero.dbo.migration (phase,number) values ('%s',%s)" % (migrate, number_togo)) if (result != 1): show(result) exit(2) else: if verbose: show("skipping migration %s < %s" % (number_togo, number_last)) else: loadsql(sqlfile, verbose) dboperator.close() show("ready")
def load(secure,hostname,url,schema,table,codeset,verbose=False): if verbose: show("begin") # make "columnlist" separately (type has no meaning as we're not creating table) row = {'koodisto':None,'koodi':None,'nimi':None,'nimi_sv':None,'nimi_en':None,'alkupvm':None,'loppupvm':None} # setup dboperator variables so insert works dboperator.columns(row) #show("empty sa_koodistot") #dboperator.empty("sa_koodistot") url = url % codeset address = hostname+url if secure: show("load securely from "+address) httpconn = httplib.HTTPSConnection(hostname) else: show("load from "+address) httpconn = httplib.HTTPConnection(hostname) httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 if verbose: show("delete from %s.%s where koodisto=%s"%(schema,table,codeset)) dboperator.remove(schema,table,"koodisto",codeset) for i in j: cnt += 1 # make "row" row["koodisto"] = codeset # columns row["koodi"] = i["koodiArvo"] row["nimi"] = getnimi(i,"FI") row["nimi_sv"] = getnimi(i,"SV") row["nimi_en"] = getnimi(i,"EN") row["alkupvm"] = i["voimassaAlkuPvm"] row["loppupvm"] = i["voimassaLoppuPvm"] if verbose: show("-- %s -- %d -- %s"%(codeset,cnt,row["koodi"])) dboperator.insert(address,schema,table,row) dboperator.close() if verbose: show("ready")
def load(secure, hostname, url, schema, table, codeset, verbose=False, debug=False): if verbose: print(strftime("%Y-%m-%d %H:%M:%S", localtime()) + " begin") # make "columnlist" (type has no meaning as we're not creating table) row = makerow() # setup dboperator so other calls work dboperator.columns(row, debug) if verbose: print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " empty %s.%s" % (schema, table)) dboperator.empty(schema, table, debug) reqheaders = {'Content-Type': 'application/json'} reqheaders['Caller-Id'] = '1.2.246.562.10.2013112012294919827487.vipunen' url = "" # replace with hardcoded values below if secure: httpconn = httplib.HTTPSConnection(hostname) print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " load securely from " + hostname + url) else: httpconn = httplib.HTTPConnection(hostname) print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " load from " + hostname + url) links = [ "/organisaatio-service/rest/organisaatio/v2/hierarkia/hae?organisaatiotyyppi=Koulutustoimija&aktiiviset=true&suunnitellut=true&lakkautetut=false", "/organisaatio-service/rest/organisaatio/v2/hierarkia/hae?organisaatiotyyppi=Koulutustoimija&aktiiviset=false&suunnitellut=false&lakkautetut=true" ] for url in links: print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " load from " + hostname + url) httpconn.request('GET', url, headers=reqheaders) #httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 for i in j["organisaatiot"]: # make "row" (clear values) row = makerow() row["jarjestajaoid"] = i["oid"] row["jarjestajakoodi"] = None if "ytunnus" not in i else i[ "ytunnus"] # may be None row["jarjestajanimi"] = None if "fi" not in i["nimi"] else i[ "nimi"]["fi"] row["jarjestajanimi_sv"] = None if "sv" not in i["nimi"] else i[ "nimi"]["sv"] row["jarjestajanimi_en"] = None if "en" not in i["nimi"] else i[ "nimi"]["en"] for o in i["children"]: if "oppilaitosKoodi" in o: cnt += 1 # sarakkeet row["oid"] = o["oid"] row["koodi"] = o["oppilaitosKoodi"] row["nimi"] = None if "fi" not in o["nimi"] else o["nimi"][ "fi"] row["nimi_sv"] = None if "sv" not in o["nimi"] else o[ "nimi"]["sv"] row["nimi_en"] = None if "en" not in o["nimi"] else o[ "nimi"]["en"] row["alkupvm"] = "1900-1-1" if "alkuPvm" not in o or o[ "alkuPvm"] < 0 else strftime( "%Y-%m-%d", localtime(o["alkuPvm"] / 1000)) row["loppupvm"] = None if "lakkautusPvm" not in o else strftime( "%Y-%m-%d", localtime(o["lakkautusPvm"] / 1000)) row["kuntakoodi"] = o["kotipaikkaUri"].replace( "kunta_", "") # => text values separately row["oppilaitostyyppikoodi"] = o[ "oppilaitostyyppi"].replace("oppilaitostyyppi_", "").replace("#1", "") # => text values separately # get address #httpconn.request('GET', "/organisaatio-service/rest/organisaatio/"+row["oid"]reqheaders) httpconn.request( 'GET', "/organisaatio-service/rest/organisaatio/" + row["oid"], headers=reqheaders) rr = httpconn.getresponse() jj = json.loads(rr.read()) if jj["kayntiosoite"]: row["osoite"] = jj["kayntiosoite"]["osoite"] row["postinumero"] = None if "postinumeroUri" not in jj[ "kayntiosoite"] else jj["kayntiosoite"][ "postinumeroUri"].replace("posti_", "") if "postitoimipaikka" in jj["kayntiosoite"]: row["postitoimipaikka"] = jj["kayntiosoite"][ "postitoimipaikka"] elif "postitoimipaikka" in jj["postiosoite"]: row["postitoimipaikka"] = jj["postiosoite"][ "postitoimipaikka"] else: row["postitoimipaikka"] = None elif jj["postiosoite"]: row["osoite"] = jj["postiosoite"]["osoite"] if jj["postiosoite"]["postinumeroUri"]: row["postinumero"] = jj["postiosoite"][ "postinumeroUri"].replace("posti_", "") row["postitoimipaikka"] = jj["postiosoite"][ "postitoimipaikka"] # todo get coordinates (see geocoding.py) if verbose: print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " %d -- %s" % (cnt, row["koodi"])) dboperator.insert(hostname + url, schema, table, row, debug) dboperator.close(debug) if verbose: print(strftime("%Y-%m-%d %H:%M:%S", localtime()) + " ready")
def load(secure, hostname, url, schema, table, codeset, verbose=False, debug=False): if verbose: print(strftime("%Y-%m-%d %H:%M:%S", localtime()) + " begin") row = makerow() dboperator.columns(row, debug) if verbose: print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " empty %s.%s" % (schema, table)) dboperator.empty(schema, table, debug) url = url % codeset # replace placeholder if secure: httpconn = httplib.HTTPSConnection(hostname) print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " load securely from " + hostname + url) else: httpconn = httplib.HTTPConnection(hostname) print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " load from " + hostname + url) reqheaders = {'Caller-Id': '1.2.246.562.10.2013112012294919827487.vipunen'} httpconn.request('GET', url, headers=reqheaders) #httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 for i in j: cnt += 1 row = makerow() row["koodi"] = jv(i, "koodiArvo") row["nimi"] = getnimi(i, "FI") row["nimi_sv"] = getnimi(i, "SV") row["nimi_en"] = getnimi(i, "FI") row["alkupvm"] = jv(i, "voimassaAlkuPvm") row["loppupvm"] = jv(i, "voimassaLoppuPvm") # classifications (nb! avi is in different direction!) httpconn.request( 'GET', "/koodisto-service/rest/json/relaatio/sisaltyy-ylakoodit/%s" % i["koodiUri"], headers=reqheaders) rr = httpconn.getresponse() jj = json.loads(rr.read()) for ii in jj: if ii["koodisto"]["koodistoUri"] == "aluehallintovirasto": row["avikoodi"] = jv(ii, "koodiArvo") row["avinimi"] = getnimi(ii, "FI") row["avinimi_sv"] = getnimi(ii, "SV") row["avinimi_en"] = getnimi(ii, "EN") # other classifications httpconn.request( 'GET', "/koodisto-service/rest/json/relaatio/sisaltyy-alakoodit/%s" % i["koodiUri"], headers=reqheaders) rr = httpconn.getresponse() jj = json.loads(rr.read()) for ii in jj: if ii["koodisto"]["koodistoUri"] == "maakunta": row["maakuntakoodi"] = jv(ii, "koodiArvo") row["maakuntanimi"] = getnimi(ii, "FI") row["maakuntanimi_sv"] = getnimi(ii, "SV") row["maakuntanimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "elykeskus": row["elykoodi"] = jv(ii, "koodiArvo") row["elynimi"] = getnimi(ii, "FI") row["elynimi_sv"] = getnimi(ii, "SV") row["elynimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "kielisuhde": row["kielisuhdekoodi"] = jv(ii, "koodiArvo") row["kielisuhdenimi"] = getnimi(ii, "FI") row["kielisuhdenimi_sv"] = getnimi(ii, "SV") row["kielisuhdenimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "seutukunta": row["seutukuntakoodi"] = jv(ii, "koodiArvo") row["seutukuntanimi"] = getnimi(ii, "FI") row["seutukuntanimi_sv"] = getnimi(ii, "SV") row["seutukuntanimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "laani": row["laanikoodi"] = jv(ii, "koodiArvo") row["laaninimi"] = getnimi(ii, "FI") row["laaninimi_sv"] = getnimi(ii, "SV") row["laaninimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "kuntaryhma": row["kuntaryhmakoodi"] = jv(ii, "koodiArvo") row["kuntaryhmanimi"] = getnimi(ii, "FI") row["kuntaryhmanimi_sv"] = getnimi(ii, "SV") row["kuntaryhmanimi_en"] = getnimi(ii, "EN") if verbose: print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " %d -- %s" % (cnt, row["koodi"])) dboperator.insert(hostname + url, schema, table, row, debug) dboperator.close(debug) if verbose: print(strftime("%Y-%m-%d %H:%M:%S", localtime()) + " ready")
def load(secure, hostname, url, schema, table, codeset, verbose=False, debug=False): if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime()) + " begin" row = makerow() dboperator.columns(row, debug) if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime()) + " empty %s.%s" % (schema, table) dboperator.empty(schema, table, debug) url = url % codeset # korvaa placeholder if secure: httpconn = httplib.HTTPSConnection(hostname) print strftime("%Y-%m-%d %H:%M:%S", localtime()) + " load securely from " + hostname + url else: httpconn = httplib.HTTPConnection(hostname) print strftime("%Y-%m-%d %H:%M:%S", localtime()) + " load from " + hostname + url httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 for i in j: cnt += 1 row = makerow() row["koodi"] = i["koodiArvo"] row["nimi"] = getnimi(i, "FI") row["nimi_sv"] = getnimi(i, "SV") row["nimi_en"] = getnimi(i, "FI") row["alkupvm"] = i["voimassaAlkuPvm"] row["loppupvm"] = i["voimassaLoppuPvm"] httpconn.request( 'GET', "/koodisto-service/rest/json/relaatio/sisaltyy-alakoodit/%s" % i["koodiUri"]) rr = httpconn.getresponse() jj = json.loads(rr.read()) ss = "" for ii in jj: if ii["koodisto"]["koodistoUri"] == "koulutusasteoph2002": row["koulutusaste2002koodi"] = ii["koodiArvo"] row["koulutusaste2002nimi"] = getnimi(ii, "FI") row["koulutusaste2002nimi_sv"] = getnimi(ii, "SV") row["koulutusaste2002nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "koulutusalaoph2002": row["koulutusala2002koodi"] = ii["koodiArvo"] row["koulutusala2002nimi"] = getnimi(ii, "FI") row["koulutusala2002nimi_sv"] = getnimi(ii, "SV") row["koulutusala2002nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "opintoalaoph2002": row["opintoala2002koodi"] = ii["koodiArvo"] row["opintoala2002nimi"] = getnimi(ii, "FI") row["opintoala2002nimi_sv"] = getnimi(ii, "SV") row["opintoala2002nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "koulutusasteoph1995": row["koulutusaste1995koodi"] = ii["koodiArvo"] row["koulutusaste1995nimi"] = getnimi(ii, "FI") row["koulutusaste1995nimi_sv"] = getnimi(ii, "SV") row["koulutusaste1995nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "koulutusalaoph1995": row["koulutusala1995koodi"] = ii["koodiArvo"] row["koulutusala1995nimi"] = getnimi(ii, "FI") row["koulutusala1995nimi_sv"] = getnimi(ii, "SV") row["koulutusala1995nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "opintoalaoph1995": row["opintoala1995koodi"] = ii["koodiArvo"] row["opintoala1995nimi"] = getnimi(ii, "FI") row["opintoala1995nimi_sv"] = getnimi(ii, "SV") row["opintoala1995nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "tutkinto": row["tutkintokoodi"] = ii["koodiArvo"] row["tutkintonimi"] = getnimi(ii, "FI") row["tutkintonimi_sv"] = getnimi(ii, "SV") row["tutkintonimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "tutkintotyyppi": row["tutkintotyyppikoodi"] = ii["koodiArvo"] row["tutkintotyyppinimi"] = getnimi(ii, "FI") row["tutkintotyyppinimi_sv"] = getnimi(ii, "SV") row["tutkintotyyppinimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "koulutustyyppi": row["koulutustyyppikoodi"] = ii["koodiArvo"] row["koulutustyyppinimi"] = getnimi(ii, "FI") row["koulutustyyppinimi_sv"] = getnimi(ii, "SV") row["koulutustyyppinimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusaste": row["isced2011koulutusastekoodi"] = ii["koodiArvo"] row["isced2011koulutusastenimi"] = getnimi(ii, "FI") row["isced2011koulutusastenimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusastenimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusastetaso1": row["isced2011koulutusastetaso1koodi"] = ii["koodiArvo"] row["isced2011koulutusastetaso1nimi"] = getnimi(ii, "FI") row["isced2011koulutusastetaso1nimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusastetaso1nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusastetaso2": row["isced2011koulutusastetaso2koodi"] = ii["koodiArvo"] row["isced2011koulutusastetaso2nimi"] = getnimi(ii, "FI") row["isced2011koulutusastetaso2nimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusastetaso2nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusalataso1": row["isced2011koulutusalataso1koodi"] = ii["koodiArvo"] row["isced2011koulutusalataso1nimi"] = getnimi(ii, "FI") row["isced2011koulutusalataso1nimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusalataso1nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusalataso2": row["isced2011koulutusalataso2koodi"] = ii["koodiArvo"] row["isced2011koulutusalataso2nimi"] = getnimi(ii, "FI") row["isced2011koulutusalataso2nimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusalataso2nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusalataso3": row["isced2011koulutusalataso3koodi"] = ii["koodiArvo"] row["isced2011koulutusalataso3nimi"] = getnimi(ii, "FI") row["isced2011koulutusalataso3nimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusalataso3nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "okmohjauksenala": row["okmohjauksenalakoodi"] = ii["koodiArvo"] row["okmohjauksenalanimi"] = getnimi(ii, "FI") row["okmohjauksenalanimi_sv"] = getnimi(ii, "SV") row["okmohjauksenalanimi_en"] = getnimi(ii, "EN") if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime()) + " %d -- %s" % (cnt, row["koodi"]) dboperator.insert(hostname + url, schema, table, row, debug) dboperator.close(debug) if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime()) + " ready"
def load(secure,hostname,url,schema,table,codeset,verbose=False,debug=False): if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" begin" row = makerow() dboperator.columns(row,debug) if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" empty %s.%s"%(schema,table) dboperator.empty(schema,table,debug) url = url % codeset # korvaa placeholder if secure: httpconn = httplib.HTTPSConnection(hostname) print strftime("%Y-%m-%d %H:%M:%S", localtime())+" load securely from "+hostname+url else: httpconn = httplib.HTTPConnection(hostname) print strftime("%Y-%m-%d %H:%M:%S", localtime())+" load from "+hostname+url httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 for i in j: cnt += 1 row = makerow() row["koodi"] = i["koodiArvo"] row["nimi"] = getnimi(i,"FI") row["nimi_sv"] = getnimi(i,"SV") row["nimi_en"] = getnimi(i,"EN") row["alkupvm"] = i["voimassaAlkuPvm"] row["loppupvm"] = i["voimassaLoppuPvm"] httpconn.request('GET', "/koodisto-service/rest/json/relaatio/sisaltyy-alakoodit/%s" % i["koodiUri"]) rr = httpconn.getresponse() jj = json.loads(rr.read()) ss = "" for ii in jj: if ii["koodisto"]["koodistoUri"] == "koulutusasteoph2002": row["koulutusaste2002koodi"] = ii["koodiArvo"] row["koulutusaste2002nimi"] = getnimi(ii,"FI") row["koulutusaste2002nimi_sv"] = getnimi(ii,"SV") row["koulutusaste2002nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "koulutusalaoph2002": row["koulutusala2002koodi"] = ii["koodiArvo"] row["koulutusala2002nimi"] = getnimi(ii,"FI") row["koulutusala2002nimi_sv"] = getnimi(ii,"SV") row["koulutusala2002nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "opintoalaoph2002": row["opintoala2002koodi"] = ii["koodiArvo"] row["opintoala2002nimi"] = getnimi(ii,"FI") row["opintoala2002nimi_sv"] = getnimi(ii,"SV") row["opintoala2002nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "koulutusasteoph1995": row["koulutusaste1995koodi"] = ii["koodiArvo"] row["koulutusaste1995nimi"] = getnimi(ii,"FI") row["koulutusaste1995nimi_sv"] = getnimi(ii,"SV") row["koulutusaste1995nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "koulutusalaoph1995": row["koulutusala1995koodi"] = ii["koodiArvo"] row["koulutusala1995nimi"] = getnimi(ii,"FI") row["koulutusala1995nimi_sv"] = getnimi(ii,"SV") row["koulutusala1995nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "opintoalaoph1995": row["opintoala1995koodi"] = ii["koodiArvo"] row["opintoala1995nimi"] = getnimi(ii,"FI") row["opintoala1995nimi_sv"] = getnimi(ii,"SV") row["opintoala1995nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "tutkinto": row["tutkintokoodi"] = ii["koodiArvo"] row["tutkintonimi"] = getnimi(ii,"FI") row["tutkintonimi_sv"] = getnimi(ii,"SV") row["tutkintonimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "tutkintotyyppi": row["tutkintotyyppikoodi"] = ii["koodiArvo"] row["tutkintotyyppinimi"] = getnimi(ii,"FI") row["tutkintotyyppinimi_sv"] = getnimi(ii,"SV") row["tutkintotyyppinimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "koulutustyyppi": row["koulutustyyppikoodi"] = ii["koodiArvo"] row["koulutustyyppinimi"] = getnimi(ii,"FI") row["koulutustyyppinimi_sv"] = getnimi(ii,"SV") row["koulutustyyppinimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusaste": row["isced2011koulutusastekoodi"] = ii["koodiArvo"] row["isced2011koulutusastenimi"] = getnimi(ii,"FI") row["isced2011koulutusastenimi_sv"] = getnimi(ii,"SV") row["isced2011koulutusastenimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusastetaso1": row["isced2011koulutusastetaso1koodi"] = ii["koodiArvo"] row["isced2011koulutusastetaso1nimi"] = getnimi(ii,"FI") row["isced2011koulutusastetaso1nimi_sv"] = getnimi(ii,"SV") row["isced2011koulutusastetaso1nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusastetaso2": row["isced2011koulutusastetaso2koodi"] = ii["koodiArvo"] row["isced2011koulutusastetaso2nimi"] = getnimi(ii,"FI") row["isced2011koulutusastetaso2nimi_sv"] = getnimi(ii,"SV") row["isced2011koulutusastetaso2nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "kansallinenkoulutusluokitus2016koulutusastetaso1": row["koulutusluokitus2016koulutusastetaso1koodi"] = ii["koodiArvo"] row["koulutusluokitus2016koulutusastetaso1nimi"] = getnimi(ii,"FI") row["koulutusluokitus2016koulutusastetaso1nimi_sv"] = getnimi(ii,"SV") row["koulutusluokitus2016koulutusastetaso1nimi_en"] = getnimi(ii,"EN") # huom! https://www.stat.fi/meta/luokitukset/koulutus/001-2016/kuvaus.html # kansallinenkoulutusluokitus2016koulutusastetaso2 -> isced2011koulutusastetaso2 if ii["koodisto"]["koodistoUri"] == "kansallinenkoulutusluokitus2016koulutusastetaso2": row["koulutusluokitus2016koulutusastetaso2koodi"] = ii["koodiArvo"] row["koulutusluokitus2016koulutusastetaso2nimi"] = getnimi(ii,"FI") row["koulutusluokitus2016koulutusastetaso2nimi_sv"] = getnimi(ii,"SV") row["koulutusluokitus2016koulutusastetaso2nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusalataso1": row["isced2011koulutusalataso1koodi"] = ii["koodiArvo"] row["isced2011koulutusalataso1nimi"] = getnimi(ii,"FI") row["isced2011koulutusalataso1nimi_sv"] = getnimi(ii,"SV") row["isced2011koulutusalataso1nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "kansallinenkoulutusluokitus2016koulutusalataso1": row["koulutusluokitus2016koulutusalataso1koodi"] = ii["koodiArvo"] row["koulutusluokitus2016koulutusalataso1nimi"] = getnimi(ii,"FI") row["koulutusluokitus2016koulutusalataso1nimi_sv"] = getnimi(ii,"SV") row["koulutusluokitus2016koulutusalataso1nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusalataso2": row["isced2011koulutusalataso2koodi"] = ii["koodiArvo"] row["isced2011koulutusalataso2nimi"] = getnimi(ii,"FI") row["isced2011koulutusalataso2nimi_sv"] = getnimi(ii,"SV") row["isced2011koulutusalataso2nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "kansallinenkoulutusluokitus2016koulutusalataso2": row["koulutusluokitus2016koulutusalataso2koodi"] = ii["koodiArvo"] row["koulutusluokitus2016koulutusalataso2nimi"] = getnimi(ii,"FI") row["koulutusluokitus2016koulutusalataso2nimi_sv"] = getnimi(ii,"SV") row["koulutusluokitus2016koulutusalataso2nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusalataso3": row["isced2011koulutusalataso3koodi"] = ii["koodiArvo"] row["isced2011koulutusalataso3nimi"] = getnimi(ii,"FI") row["isced2011koulutusalataso3nimi_sv"] = getnimi(ii,"SV") row["isced2011koulutusalataso3nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "kansallinenkoulutusluokitus2016koulutusalataso3": row["koulutusluokitus2016koulutusalataso3koodi"] = ii["koodiArvo"] row["koulutusluokitus2016koulutusalataso3nimi"] = getnimi(ii,"FI") row["koulutusluokitus2016koulutusalataso3nimi_sv"] = getnimi(ii,"SV") row["koulutusluokitus2016koulutusalataso3nimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "okmohjauksenala": row["okmohjauksenalakoodi"] = ii["koodiArvo"] row["okmohjauksenalanimi"] = getnimi(ii,"FI") row["okmohjauksenalanimi_sv"] = getnimi(ii,"SV") row["okmohjauksenalanimi_en"] = getnimi(ii,"EN") if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" %d -- %s"%(cnt,row["koodi"]) dboperator.insert(hostname+url,schema,table,row,debug) dboperator.close(debug) if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" ready"
def load(secure,hostname,url,schema,table,verbose): show("begin "+hostname+" "+url+" "+schema+" "+table) if secure: address = "https://"+hostname+url else: address = "http://"+hostname+url #""" load from web show("load from "+address) try: response = requests.get(address) except e: show('HTTP GET failed.') show('Reason: %s'%(e.reason)) sys.exit(2) else: # everything is fine show("api call OK") # read the data. # all of it. this is dangerous for big datasets! # convert to utf-8 on-the-fly if it's not data = response.text.encode('utf-8') #""" # create temporary file (remove at the end) f = tempfile.NamedTemporaryFile() #defaults: mode='w+b', delete=True) show("using tempfile: %s"%(f.name)) f.write(data) # start using data, go to start f.seek(0) # remove BOM if exists if f.read(3)!=codecs.BOM_UTF8: f.seek(0) # make csv dictionary (first row must have column names) csvdata = csv.DictReader(f, delimiter=";") # discover columns and their types (read through entirely!) show("discover table structure") cnt=0 for row in csvdata: cnt+=1 if verbose: print cnt,row if verbose: for col in row: print cnt,col,row[col] dboperator.columns(row) # start operating with database # drop table show("drop %s.%s"%(schema,table)) dboperator.drop(schema,table) # create table show("create %s.%s"%(schema,table)) dboperator.create(schema,table) show("insert data") # reset csvdata! f.seek(0) # remove BOM if f.read(3)!=codecs.BOM_UTF8: f.seek(0) csvdata = csv.DictReader(f, delimiter=";") cnt=0 for row in csvdata: cnt+=1 # show some sign of being alive if cnt%100 == 0: sys.stdout.write('.') sys.stdout.flush() if cnt%1000 == 0: show("-- %d" % (cnt)) dboperator.insert(address,schema,table,row) show("wrote %d"%(cnt)) dboperator.close() # close (and delete) file f.close() show("ready")
def load(secure,hostname,url,schema,table,verbose=False): if verbose: show("begin") # make "columnlist" (type has no meaning as we're not creating table) row = makerow() # setup dboperator so other calls work dboperator.columns(row) if verbose: show("empty %s.%s"%(schema,table)) dboperator.empty(schema,table) # fetching could be as simple and fast as: """ geturi = "v2/hae?aktiiviset=true&suunnitellut=true&lakkautetut=true&organisaatiotyyppi=" tyyppis = [ "Koulutustoimija", "Oppilaitos", "Toimipiste" ] cnt = 0 for tyyppi in tyyppis: show("load from "+hostname+url+geturi+tyyppi) if secure: address = "https://"+hostname+url+geturi+tyyppi else: address = "http://"+hostname+url+geturi+tyyppi """ # ... but results don't contain address information :( if secure: address = "https://"+hostname+url else: address = "http://"+hostname+url #""" load from web show("load from "+address) try: # first create a "hash map" of liitokset liitosresponse = requests.get(address+"v2/liitokset") # actual data response = requests.get(address) except e: show('HTTP GET failed.') show('Reason: %s'%(e.reason)) sys.exit(2) else: # everything is fine show("api call OK") #""" # liitokset liitosmap = dict() for l in liitosresponse.json(): liitosmap[l["organisaatio"]["oid"]] = l["kohde"]["oid"] liitosresponse = None oids = response.json() cnt = 0 for o in oids: cnt+=1 # show some sign of being alive if cnt%100 == 0: sys.stdout.write('.') sys.stdout.flush() if cnt%1000 == 0: show("-- %d" % (cnt)) if verbose: show("%d -- %s"%(cnt,row)) # make another requets to actual organization data r = requests.get(address+o) i = r.json() # make "row" (clear values) row = makerow() row["oid"] = o row["parentoid"] = jv(i,"parentOid") # liitokset row["liitosoid"] = liitosmap[o] if o in liitosmap else None # TODO does the order here matter? if multiple tyyppi's, what to do? if "tyypit" in i and "Koulutustoimija" in i["tyypit"]: row["tyyppi"] = "Koulutustoimija" row["koodi"] = jv(i,"ytunnus") if not row["koodi"]: row["koodi"] = jv(i,"virastotunnus") # alternatively try virastotunnus if ytunnus is missing if not row["koodi"]: row["tyyppi"] = None # cancel this organization from loading elif "tyypit" in i and "Oppilaitos" in i["tyypit"]: row["tyyppi"] = "Oppilaitos" row["koodi"] = jv(i,"oppilaitosKoodi") if "oppilaitosTyyppiUri" in i and i["oppilaitosTyyppiUri"]: row["oppilaitostyyppi"] = i["oppilaitosTyyppiUri"].replace("oppilaitostyyppi_","").replace("#1","") # => just code, text values separately elif "tyypit" in i and "Toimipiste" in i["tyypit"]: row["tyyppi"] = "Toimipiste" row["koodi"] = jv(i,"toimipistekoodi") elif "tyypit" in i and "Oppisopimustoimipiste" in i["tyypit"]: row["tyyppi"] = "Oppisopimustoimipiste" row["koodi"] = jv(i,"toimipistekoodi") # was current organization of type of interest if row["tyyppi"]: if "nimi" in i and i["nimi"]: row["nimi"] = jv(jv(i,"nimi"),"fi") row["nimi_sv"] = jv(jv(i,"nimi"),"sv") row["nimi_en"] = jv(jv(i,"nimi"),"en") row["alkupvm"] = jv(i,"alkuPvm") row["loppupvm"] = jv(i,"lakkautusPvm") if "kotipaikkaUri" in i and i["kotipaikkaUri"]: row["kotikunta"] = jv(i,"kotipaikkaUri").replace("kunta_","") # => just code, text values separately if "kieletUris" in i and i["kieletUris"]: # todo what if many? row["oppilaitoksenopetuskieli"] = i["kieletUris"][0].replace("oppilaitoksenopetuskieli_","").replace("#1","") # => just code, text values separately # address, first kayntiosoite and if not exists then postiosoite josoite = None if "kayntiosoite" in i: josoite = jv(i,"kayntiosoite") row["osoitetyyppi"] = "kayntiosoite" elif "postiosoite" in i: josoite = jv(i,"postiosoite") row["osoitetyyppi"] = "postiosoite" if josoite: row["osoite"] = jv(josoite,"osoite") row["postinumero"] = josoite["postinumeroUri"].replace("posti_","") if "postinumeroUri" in josoite and josoite["postinumeroUri"] else None row["postitoimipaikka"] = jv(josoite,"postitoimipaikka") if (row["osoite"] is not None and row["osoite"] is not "" and row["postinumero"] is not None and row["postinumero"] is not "" and int(row["postinumero"]) is not 0 and row["postitoimipaikka"] is not None and row["postitoimipaikka"] is not ""): get_and_set_coordinates(row) if verbose: show(" %5d -- %s %s (%s)"%(cnt,row["tyyppi"],row["koodi"],row["nimi"])) dboperator.insert(hostname+url,schema,table,row) dboperator.close() if verbose: show("ready")
def load(secure, hostname, url, schema, table, codeset, verbose=False, debug=False): if verbose: print(strftime("%Y-%m-%d %H:%M:%S", localtime()) + " begin") row = makerow() dboperator.columns(row, debug) if verbose: print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " empty %s.%s" % (schema, table)) dboperator.empty(schema, table, debug) url = url % codeset # korvaa placeholder if secure: httpconn = httplib.HTTPSConnection(hostname) print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " load securely from " + hostname + url) else: httpconn = httplib.HTTPConnection(hostname) print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " load from " + hostname + url) reqheaders = {'Caller-Id': '1.2.246.562.10.2013112012294919827487.vipunen'} httpconn.request('GET', url, headers=reqheaders) #httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 for i in j: cnt += 1 row = makerow() row["koodi"] = i["koodiArvo"] row["nimi"] = getnimi(i, "FI") row["nimi_sv"] = getnimi(i, "SV") row["nimi_en"] = getnimi(i, "EN") row["alkupvm"] = i["voimassaAlkuPvm"] row["loppupvm"] = i["voimassaLoppuPvm"] httpconn.request( 'GET', "/koodisto-service/rest/json/relaatio/sisaltyy-alakoodit/%s" % i["koodiUri"], headers=reqheaders) rr = httpconn.getresponse() jj = json.loads(rr.read()) for ii in jj: if ii["koodisto"]["koodistoUri"] == "koulutusasteoph2002": row["koulutusaste2002koodi"] = ii["koodiArvo"] row["koulutusaste2002nimi"] = getnimi(ii, "FI") row["koulutusaste2002nimi_sv"] = getnimi(ii, "SV") row["koulutusaste2002nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "koulutusalaoph2002": row["koulutusala2002koodi"] = ii["koodiArvo"] row["koulutusala2002nimi"] = getnimi(ii, "FI") row["koulutusala2002nimi_sv"] = getnimi(ii, "SV") row["koulutusala2002nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "opintoalaoph2002": row["opintoala2002koodi"] = ii["koodiArvo"] row["opintoala2002nimi"] = getnimi(ii, "FI") row["opintoala2002nimi_sv"] = getnimi(ii, "SV") row["opintoala2002nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "koulutusasteoph1995": row["koulutusaste1995koodi"] = ii["koodiArvo"] row["koulutusaste1995nimi"] = getnimi(ii, "FI") row["koulutusaste1995nimi_sv"] = getnimi(ii, "SV") row["koulutusaste1995nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "koulutusalaoph1995": row["koulutusala1995koodi"] = ii["koodiArvo"] row["koulutusala1995nimi"] = getnimi(ii, "FI") row["koulutusala1995nimi_sv"] = getnimi(ii, "SV") row["koulutusala1995nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "opintoalaoph1995": row["opintoala1995koodi"] = ii["koodiArvo"] row["opintoala1995nimi"] = getnimi(ii, "FI") row["opintoala1995nimi_sv"] = getnimi(ii, "SV") row["opintoala1995nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "tutkinto": row["tutkintokoodi"] = ii["koodiArvo"] row["tutkintonimi"] = getnimi(ii, "FI") row["tutkintonimi_sv"] = getnimi(ii, "SV") row["tutkintonimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "tutkintotyyppi": row["tutkintotyyppikoodi"] = ii["koodiArvo"] row["tutkintotyyppinimi"] = getnimi(ii, "FI") row["tutkintotyyppinimi_sv"] = getnimi(ii, "SV") row["tutkintotyyppinimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "koulutustyyppi": row["koulutustyyppikoodi"] = ii["koodiArvo"] row["koulutustyyppinimi"] = getnimi(ii, "FI") row["koulutustyyppinimi_sv"] = getnimi(ii, "SV") row["koulutustyyppinimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusaste": row["isced2011koulutusastekoodi"] = ii["koodiArvo"] row["isced2011koulutusastenimi"] = getnimi(ii, "FI") row["isced2011koulutusastenimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusastenimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusastetaso1": row["isced2011koulutusastetaso1koodi"] = ii["koodiArvo"] row["isced2011koulutusastetaso1nimi"] = getnimi(ii, "FI") row["isced2011koulutusastetaso1nimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusastetaso1nimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusastetaso2": row["isced2011koulutusastetaso2koodi"] = ii["koodiArvo"] row["isced2011koulutusastetaso2nimi"] = getnimi(ii, "FI") row["isced2011koulutusastetaso2nimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusastetaso2nimi_en"] = getnimi(ii, "EN") if ii["koodisto"][ "koodistoUri"] == "kansallinenkoulutusluokitus2016koulutusastetaso1": row["koulutusluokitus2016koulutusastetaso1koodi"] = ii[ "koodiArvo"] row["koulutusluokitus2016koulutusastetaso1nimi"] = getnimi( ii, "FI") row["koulutusluokitus2016koulutusastetaso1nimi_sv"] = getnimi( ii, "SV") row["koulutusluokitus2016koulutusastetaso1nimi_en"] = getnimi( ii, "EN") # huom! https://www.stat.fi/meta/luokitukset/koulutus/001-2016/kuvaus.html # kansallinenkoulutusluokitus2016koulutusastetaso2 -> isced2011koulutusastetaso2 if ii["koodisto"][ "koodistoUri"] == "kansallinenkoulutusluokitus2016koulutusastetaso2": row["koulutusluokitus2016koulutusastetaso2koodi"] = ii[ "koodiArvo"] row["koulutusluokitus2016koulutusastetaso2nimi"] = getnimi( ii, "FI") row["koulutusluokitus2016koulutusastetaso2nimi_sv"] = getnimi( ii, "SV") row["koulutusluokitus2016koulutusastetaso2nimi_en"] = getnimi( ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusalataso1": row["isced2011koulutusalataso1koodi"] = ii["koodiArvo"] row["isced2011koulutusalataso1nimi"] = getnimi(ii, "FI") row["isced2011koulutusalataso1nimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusalataso1nimi_en"] = getnimi(ii, "EN") if ii["koodisto"][ "koodistoUri"] == "kansallinenkoulutusluokitus2016koulutusalataso1": row["koulutusluokitus2016koulutusalataso1koodi"] = ii[ "koodiArvo"] row["koulutusluokitus2016koulutusalataso1nimi"] = getnimi( ii, "FI") row["koulutusluokitus2016koulutusalataso1nimi_sv"] = getnimi( ii, "SV") row["koulutusluokitus2016koulutusalataso1nimi_en"] = getnimi( ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusalataso2": row["isced2011koulutusalataso2koodi"] = ii["koodiArvo"] row["isced2011koulutusalataso2nimi"] = getnimi(ii, "FI") row["isced2011koulutusalataso2nimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusalataso2nimi_en"] = getnimi(ii, "EN") if ii["koodisto"][ "koodistoUri"] == "kansallinenkoulutusluokitus2016koulutusalataso2": row["koulutusluokitus2016koulutusalataso2koodi"] = ii[ "koodiArvo"] row["koulutusluokitus2016koulutusalataso2nimi"] = getnimi( ii, "FI") row["koulutusluokitus2016koulutusalataso2nimi_sv"] = getnimi( ii, "SV") row["koulutusluokitus2016koulutusalataso2nimi_en"] = getnimi( ii, "EN") if ii["koodisto"]["koodistoUri"] == "isced2011koulutusalataso3": row["isced2011koulutusalataso3koodi"] = ii["koodiArvo"] row["isced2011koulutusalataso3nimi"] = getnimi(ii, "FI") row["isced2011koulutusalataso3nimi_sv"] = getnimi(ii, "SV") row["isced2011koulutusalataso3nimi_en"] = getnimi(ii, "EN") if ii["koodisto"][ "koodistoUri"] == "kansallinenkoulutusluokitus2016koulutusalataso3": row["koulutusluokitus2016koulutusalataso3koodi"] = ii[ "koodiArvo"] row["koulutusluokitus2016koulutusalataso3nimi"] = getnimi( ii, "FI") row["koulutusluokitus2016koulutusalataso3nimi_sv"] = getnimi( ii, "SV") row["koulutusluokitus2016koulutusalataso3nimi_en"] = getnimi( ii, "EN") if ii["koodisto"]["koodistoUri"] == "okmohjauksenala": row["okmohjauksenalakoodi"] = ii["koodiArvo"] row["okmohjauksenalanimi"] = getnimi(ii, "FI") row["okmohjauksenalanimi_sv"] = getnimi(ii, "SV") row["okmohjauksenalanimi_en"] = getnimi(ii, "EN") if ii["koodisto"]["koodistoUri"] == "tutkintonimikkeet": row["tutkintonimikekoodi"] = ii["koodiArvo"] row["tutkintonimike"] = getnimi(ii, "FI") row["tutkintonimike_sv"] = getnimi(ii, "SV") row["tutkintonimike_en"] = getnimi(ii, "EN") if verbose: print( strftime("%Y-%m-%d %H:%M:%S", localtime()) + " %d -- %s" % (cnt, row["koodi"])) dboperator.insert(hostname + url, schema, table, row, debug) dboperator.close(debug) if verbose: print(strftime("%Y-%m-%d %H:%M:%S", localtime()) + " ready")
def load(secure, hostname, url, schema, table, verbose=False): if verbose: show("begin") # make "columnlist" (type has no meaning as we're not creating table) row = makerow() # setup dboperator so other calls work dboperator.columns(row) if verbose: show("empty %s.%s" % (schema, table)) dboperator.empty(schema, table) # fetching could be as simple and fast as: """ geturi = "v2/hae?aktiiviset=true&suunnitellut=true&lakkautetut=true&organisaatiotyyppi=" tyyppis = [ "Koulutustoimija", "Oppilaitos", "Toimipiste" ] cnt = 0 for tyyppi in tyyppis: show("load from "+hostname+url+geturi+tyyppi) if secure: address = "https://"+hostname+url+geturi+tyyppi else: address = "http://"+hostname+url+geturi+tyyppi """ # ... but results don't contain address information :( if secure: address = "https://" + hostname + url else: address = "http://" + hostname + url #""" load from web show("load from " + address) try: # first create a "hash map" of liitokset liitosresponse = requests.get( address + "v2/liitokset", headers={ 'Caller-Id': '1.2.246.562.10.2013112012294919827487.vipunen' }) # actual data response = requests.get( address, headers={ 'Caller-Id': '1.2.246.562.10.2013112012294919827487.vipunen' }) except Exception as e: show('HTTP GET failed.') show('Reason: %s' % (str(e))) sys.exit(2) else: # everything is fine show("api call OK") #""" # liitokset liitosmap = dict() for l in liitosresponse.json(): liitosmap[l["organisaatio"]["oid"]] = l["kohde"]["oid"] liitosresponse = None oids = response.json() cnt = 0 for o in oids: cnt += 1 # show some sign of being alive if cnt % 100 == 0: sys.stdout.write('.') sys.stdout.flush() if cnt % 1000 == 0: show("-- %d" % (cnt)) if verbose: show("%d -- %s" % (cnt, row)) # make another requets to actual organization data try: r = requests.get( address + o, headers={ 'Caller-Id': '1.2.246.562.10.2013112012294919827487.vipunen' }) i = r.json() # make "row" (clear values) row = makerow() row["oid"] = o row["parentoid"] = jv(i, "parentOid") # liitokset row["liitosoid"] = liitosmap[o] if o in liitosmap else None # TODO does the order here matter? if multiple tyyppi's, what to do? if "tyypit" in i and "Koulutustoimija" in i["tyypit"]: row["tyyppi"] = "Koulutustoimija" row["koodi"] = jv(i, "ytunnus") if not row["koodi"]: row["koodi"] = jv( i, "virastoTunnus" ) # alternatively try virastotunnus if ytunnus is missing if not row["koodi"]: row["tyyppi"] = None # cancel this organization from loading elif "tyypit" in i and "Oppilaitos" in i["tyypit"]: row["tyyppi"] = "Oppilaitos" row["koodi"] = jv(i, "oppilaitosKoodi") if "oppilaitosTyyppiUri" in i and i["oppilaitosTyyppiUri"]: row["oppilaitostyyppi"] = i["oppilaitosTyyppiUri"].replace( "oppilaitostyyppi_", "").replace("#1", "") # => just code, text values separately elif "tyypit" in i and "Toimipiste" in i["tyypit"]: row["tyyppi"] = "Toimipiste" row["koodi"] = jv(i, "toimipistekoodi") elif "tyypit" in i and "Oppisopimustoimipiste" in i["tyypit"]: row["tyyppi"] = "Oppisopimustoimipiste" row["koodi"] = jv(i, "toimipistekoodi") elif "tyypit" in i and "Varhaiskasvatuksen toimipaikka" in i[ "tyypit"]: row["tyyppi"] = "Varhaiskasvatuksen toimipaikka" row["koodi"] = jv(i, "toimipistekoodi") elif "tyypit" in i and "Varhaiskasvatuksen jarjestaja" in i[ "tyypit"]: row["tyyppi"] = "Varhaiskasvatuksen järjestaja" row["koodi"] = jv(i, "toimipistekoodi") # was current organization of type of interest if row["tyyppi"]: if "nimi" in i and i["nimi"]: row["nimi"] = jv(jv(i, "nimi"), "fi") row["nimi_sv"] = jv(jv(i, "nimi"), "sv") row["nimi_en"] = jv(jv(i, "nimi"), "en") row["alkupvm"] = jv(i, "alkuPvm") row["loppupvm"] = jv(i, "lakkautusPvm") if "kotipaikkaUri" in i and i["kotipaikkaUri"]: row["kotikunta"] = jv(i, "kotipaikkaUri").replace( "kunta_", "") # => just code, text values separately if "kieletUris" in i and i["kieletUris"]: # todo what if many? row["oppilaitoksenopetuskieli"] = i["kieletUris"][ 0].replace("oppilaitoksenopetuskieli_", "").replace("#1", "") # => just code, text values separately # address, first kayntiosoite and if not exists then postiosoite josoite = None if "kayntiosoite" in i: josoite = jv(i, "kayntiosoite") row["osoitetyyppi"] = "kayntiosoite" elif "postiosoite" in i: josoite = jv(i, "postiosoite") row["osoitetyyppi"] = "postiosoite" if josoite: row["osoite"] = jv(josoite, "osoite") row["postinumero"] = josoite["postinumeroUri"].replace( "posti_", "") if "postinumeroUri" in josoite and josoite[ "postinumeroUri"] else None row["postitoimipaikka"] = jv(josoite, "postitoimipaikka") if (row["osoite"] is not None and row["osoite"] is not "" and row["postinumero"] is not None and row["postinumero"] is not "" and int(row["postinumero"]) is not 0 and row["postitoimipaikka"] is not None and row["postitoimipaikka"] is not ""): get_and_set_coordinates(row) if verbose: show(" %5d -- %s %s (%s)" % (cnt, row["tyyppi"], row["koodi"], row["nimi"])) dboperator.insert(hostname + url, schema, table, row) except ValueError as ve: print("ValueError: " + str(ve)) print("vika: " + str(address) + " oid:" + str(o)) dboperator.close() if verbose: show("ready")
if josoite: row["osoite"] = jv(josoite,"osoite") row["postinumero"] = josoite["postinumeroUri"].replace("posti_","") if "postinumeroUri" in josoite and josoite["postinumeroUri"] else None row["postitoimipaikka"] = jv(josoite,"postitoimipaikka") if (row["osoite"] is not None and row["osoite"] is not "" and row["postinumero"] is not None and row["postinumero"] is not "" and int(row["postinumero"]) is not 0 and row["postitoimipaikka"] is not None and row["postitoimipaikka"] is not ""): get_and_set_coordinates(row) if verbose: show(" %5d -- %s %s (%s)"%(cnt,row["tyyppi"],row["koodi"],row["nimi"])) dboperator.insert(hostname+url,schema,table,row) except ValueError, ve: print "Error: " + str(ve) print "vika: " + str(address) + " oid:" + str(o) dboperator.close() if verbose: show("ready") def usage(): print """ usage: organisaatioluokitus.py [-s|--secure] [-H|--hostname <hostname>] [-u|--url <url>] [-e|--schema <schema>] [-t|--table <table>] [-v|--verbose] secure defaults to secure, so no actual use here! hostname defaults to $OPINTOPOLKU then to "virkailija.opintopolku.fi" url defaults to "/organisaatio-service/rest/organisaatio/" schema defaults to $SCHEMA then to "sa" table defaults to $TABLE then to "sa_organisaatioluokitus" """ def main(argv):
def load(secure,hostname,url,schema,table,codeset,verbose=False,debug=False): if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" begin" row = makerow() dboperator.columns(row,debug) if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" empty %s.%s"%(schema,table) dboperator.empty(schema,table,debug) url = url % codeset # replace placeholder if secure: httpconn = httplib.HTTPSConnection(hostname) print strftime("%Y-%m-%d %H:%M:%S", localtime())+" load securely from "+hostname+url else: httpconn = httplib.HTTPConnection(hostname) print strftime("%Y-%m-%d %H:%M:%S", localtime())+" load from "+hostname+url httpconn.request('GET', url) r = httpconn.getresponse() j = json.loads(r.read()) cnt = 0 for i in j: cnt += 1 row = makerow() row["koodi"] = jv(i,"koodiArvo") row["nimi"] = getnimi(i,"FI") row["nimi_sv"] = getnimi(i,"SV") row["nimi_en"] = getnimi(i,"FI") row["alkupvm"] = jv(i,"voimassaAlkuPvm") row["loppupvm"] = jv(i,"voimassaLoppuPvm") # classifications (nb! avi is in different direction!) httpconn.request('GET', "/koodisto-service/rest/json/relaatio/sisaltyy-ylakoodit/%s" % i["koodiUri"]) rr = httpconn.getresponse() jj = json.loads(rr.read()) ss = "" for ii in jj: if ii["koodisto"]["koodistoUri"] == "aluehallintovirasto": row["avikoodi"] = jv(ii,"koodiArvo") row["avinimi"] = getnimi(ii,"FI") row["avinimi_sv"] = getnimi(ii,"SV") row["avinimi_en"] = getnimi(ii,"EN") # other classifications httpconn.request('GET', "/koodisto-service/rest/json/relaatio/sisaltyy-alakoodit/%s" % i["koodiUri"]) rr = httpconn.getresponse() jj = json.loads(rr.read()) ss = "" for ii in jj: if ii["koodisto"]["koodistoUri"] == "maakunta": row["maakuntakoodi"] = jv(ii,"koodiArvo") row["maakuntanimi"] = getnimi(ii,"FI") row["maakuntanimi_sv"] = getnimi(ii,"SV") row["maakuntanimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "elykeskus": row["elykoodi"] = jv(ii,"koodiArvo") row["elynimi"] = getnimi(ii,"FI") row["elynimi_sv"] = getnimi(ii,"SV") row["elynimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "kielisuhde": row["kielisuhdekoodi"] = jv(ii,"koodiArvo") row["kielisuhdenimi"] = getnimi(ii,"FI") row["kielisuhdenimi_sv"] = getnimi(ii,"SV") row["kielisuhdenimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "seutukunta": row["seutukuntakoodi"] = jv(ii,"koodiArvo") row["seutukuntanimi"] = getnimi(ii,"FI") row["seutukuntanimi_sv"] = getnimi(ii,"SV") row["seutukuntanimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "laani": row["laanikoodi"] = jv(ii,"koodiArvo") row["laaninimi"] = getnimi(ii,"FI") row["laaninimi_sv"] = getnimi(ii,"SV") row["laaninimi_en"] = getnimi(ii,"EN") if ii["koodisto"]["koodistoUri"] == "kuntaryhma": row["kuntaryhmakoodi"] = jv(ii,"koodiArvo") row["kuntaryhmanimi"] = getnimi(ii,"FI") row["kuntaryhmanimi_sv"] = getnimi(ii,"SV") row["kuntaryhmanimi_en"] = getnimi(ii,"EN") if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" %d -- %s"%(cnt,row["koodi"]) dboperator.insert(hostname+url,schema,table,row,debug) dboperator.close(debug) if verbose: print strftime("%Y-%m-%d %H:%M:%S", localtime())+" ready"