Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
Adressen Integration
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Model registry
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Maximilian Loch
Adressen Integration
Commits
0dc6f7fb
Commit
0dc6f7fb
authored
1 year ago
by
Maximilian Loch
Browse files
Options
Downloads
Patches
Plain Diff
added option to give table name in config file
parent
5d534b99
No related branches found
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
adressen_update_script.py
+3
-2
3 additions, 2 deletions
adressen_update_script.py
example_conn.cfg
+2
-1
2 additions, 1 deletion
example_conn.cfg
geocoder_script.py
+3
-2
3 additions, 2 deletions
geocoder_script.py
script_helper.py
+25
-13
25 additions, 13 deletions
script_helper.py
with
33 additions
and
18 deletions
adressen_update_script.py
+
3
−
2
View file @
0dc6f7fb
...
@@ -16,13 +16,14 @@ if __name__ == '__main__':
...
@@ -16,13 +16,14 @@ if __name__ == '__main__':
dbname=
{
conn_config
[
'
connection
'
][
'
dbname
'
]
}
dbname=
{
conn_config
[
'
connection
'
][
'
dbname
'
]
}
user=
{
conn_config
[
'
connection
'
][
'
user
'
]
}
user=
{
conn_config
[
'
connection
'
][
'
user
'
]
}
password=
{
conn_config
[
'
connection
'
][
'
pwd
'
]
}
"""
password=
{
conn_config
[
'
connection
'
][
'
pwd
'
]
}
"""
table
=
conn_config
[
"
connection
"
][
'
table
'
]
url
=
conn_config
[
'
connection
'
][
'
url
'
]
url
=
conn_config
[
'
connection
'
][
'
url
'
]
my_db
=
DBTools
(
conn_str
)
my_db
=
DBTools
(
conn_str
)
my_api
=
APITools
(
url
)
my_api
=
APITools
(
url
)
schulen
=
my_db
.
select_uri
()
schulen
=
my_db
.
select_uri
(
table
)
lenschule
=
len
(
schulen
)
lenschule
=
len
(
schulen
)
i
=
1
i
=
1
...
@@ -30,7 +31,7 @@ if __name__ == '__main__':
...
@@ -30,7 +31,7 @@ if __name__ == '__main__':
print
(
str
(
i
)
+
"
/
"
+
str
(
lenschule
))
print
(
str
(
i
)
+
"
/
"
+
str
(
lenschule
))
if
item
[
0
]
is
not
None
:
if
item
[
0
]
is
not
None
:
adresse
=
my_api
.
findadresse
(
item
[
0
])
adresse
=
my_api
.
findadresse
(
item
[
0
])
my_db
.
update_adress
(
adresse
,
item
[
0
])
my_db
.
update_adress
(
adresse
,
item
[
0
]
,
table
)
else
:
else
:
print
(
"
hat keine URI
"
)
print
(
"
hat keine URI
"
)
...
...
This diff is collapsed.
Click to expand it.
example_conn.cfg
+
2
−
1
View file @
0dc6f7fb
...
@@ -5,3 +5,4 @@ dbname=database name
...
@@ -5,3 +5,4 @@ dbname=database name
user
=
username
user
=
username
pwd
=
password
pwd
=
password
url
=
API url
url
=
API url
table
=
tablename
\ No newline at end of file
This diff is collapsed.
Click to expand it.
geocoder_script.py
+
3
−
2
View file @
0dc6f7fb
...
@@ -15,6 +15,7 @@ if __name__ == '__main__':
...
@@ -15,6 +15,7 @@ if __name__ == '__main__':
dbname=
{
conn_config
[
'
connection
'
][
'
dbname
'
]
}
dbname=
{
conn_config
[
'
connection
'
][
'
dbname
'
]
}
user=
{
conn_config
[
'
connection
'
][
'
user
'
]
}
user=
{
conn_config
[
'
connection
'
][
'
user
'
]
}
password=
{
conn_config
[
'
connection
'
][
'
pwd
'
]
}
"""
password=
{
conn_config
[
'
connection
'
][
'
pwd
'
]
}
"""
table
=
conn_config
[
'
connection
'
][
'
table
'
]
url
=
conn_config
[
'
connection
'
][
'
url
'
]
url
=
conn_config
[
'
connection
'
][
'
url
'
]
# logfile = r"geocoder.log"
# logfile = r"geocoder.log"
...
@@ -22,7 +23,7 @@ if __name__ == '__main__':
...
@@ -22,7 +23,7 @@ if __name__ == '__main__':
my_db
=
DBTools
(
conn_str
)
my_db
=
DBTools
(
conn_str
)
my_api
=
APITools
(
url
)
my_api
=
APITools
(
url
)
schulen
=
my_db
.
select_adress
()
schulen
=
my_db
.
select_adress
(
table
)
adresse
=
{}
adresse
=
{}
maxfeatures
=
len
(
schulen
)
maxfeatures
=
len
(
schulen
)
numfeatures
=
0
numfeatures
=
0
...
@@ -40,7 +41,7 @@ if __name__ == '__main__':
...
@@ -40,7 +41,7 @@ if __name__ == '__main__':
if
areg_response
.
get
(
"
uri
"
)
is
not
None
:
if
areg_response
.
get
(
"
uri
"
)
is
not
None
:
areg_uri
=
areg_response
[
"
uri
"
]
areg_uri
=
areg_response
[
"
uri
"
]
my_db
.
update_uri
(
str
(
item
[
0
]),
areg_uri
)
my_db
.
update_uri
(
str
(
item
[
0
]),
areg_uri
,
table
)
numfeatures
+=
1
numfeatures
+=
1
else
:
else
:
areg_response_key
=
list
(
areg_response
.
keys
())
areg_response_key
=
list
(
areg_response
.
keys
())
...
...
This diff is collapsed.
Click to expand it.
script_helper.py
+
25
−
13
View file @
0dc6f7fb
...
@@ -21,7 +21,7 @@ class DBTools:
...
@@ -21,7 +21,7 @@ class DBTools:
self
.
db_connection
=
psycopg2
.
connect
(
conn
)
self
.
db_connection
=
psycopg2
.
connect
(
conn
)
self
.
cursor
=
self
.
db_connection
.
cursor
()
self
.
cursor
=
self
.
db_connection
.
cursor
()
def
select_adress
(
self
)
->
"
list[tuple[str, ... ]]
"
:
def
select_adress
(
self
,
table
:
str
)
->
"
list[tuple[str, ... ]]
"
:
"""
Selektieren der Adressdaten
"""
Selektieren der Adressdaten
Funktion zum selektieren der Adressdaten der Schulen aus der Datenbank.
Funktion zum selektieren der Adressdaten der Schulen aus der Datenbank.
...
@@ -32,12 +32,16 @@ class DBTools:
...
@@ -32,12 +32,16 @@ class DBTools:
* PLZ
* PLZ
* Ortsname
* Ortsname
Args:
table: Name der Tabelle aus welcher die Adressen selektiert werden
sollen
Returns:
Returns:
Liste mit mehreren Tupeln welche die Adressdaten der
Liste mit mehreren Tupeln welche die Adressdaten der
Schulen enthalten.
Schulen enthalten.
"""
"""
select_sql
=
"""
select_sql
=
f
"""
select
select
lokaleID,
lokaleID,
adressealt_hnr,
adressealt_hnr,
...
@@ -45,29 +49,33 @@ class DBTools:
...
@@ -45,29 +49,33 @@ class DBTools:
adressealt_plz,
adressealt_plz,
adressealt_ort
adressealt_ort
from
from
prototyp_areg.schu
le
n
;
"""
{
tab
le
}
;
"""
self
.
cursor
.
execute
(
select_sql
)
self
.
cursor
.
execute
(
select_sql
)
query_result
=
self
.
cursor
.
fetchall
()
query_result
=
self
.
cursor
.
fetchall
()
return
query_result
return
query_result
def
select_uri
(
self
)
->
"
list[tuple[str, ... ]]
"
:
def
select_uri
(
self
,
table
:
str
)
->
"
list[tuple[str, ... ]]
"
:
"""
Selektieren der AREG URI
"""
Selektieren der AREG URI
Funktion zum selektieren der URI aus dem Datensatz um diese mit
Funktion zum selektieren der URI aus dem Datensatz um diese mit
aktuellen AREG Adressdaten anzureichern.
aktuellen AREG Adressdaten anzureichern.
Args:
table: Name der Tabelle aus welcher die Adressen selektiert werden
sollen
Returns:
Returns:
Liste mit meheren Tupeln welche die AREG URI enthalten.
Liste mit meheren Tupeln welche die AREG URI enthalten.
Es wird sichergestellt, dass keine NULL Werte vorkommen.
Es wird sichergestellt, dass keine NULL Werte vorkommen.
"""
"""
select_sql
=
"""
select_sql
=
f
"""
select
select
distinct(areg_uri)
distinct(areg_uri)
from
from
prototyp_areg.schu
le
n
{
tab
le
}
where
where
areg_uri like
'
https://%
'
;
"""
areg_uri like
'
https://%
'
;
"""
...
@@ -76,7 +84,7 @@ class DBTools:
...
@@ -76,7 +84,7 @@ class DBTools:
return
query_data
return
query_data
def
update_uri
(
self
,
param_dbid
:
str
,
param_uri
:
str
)
->
None
:
def
update_uri
(
self
,
param_dbid
:
str
,
param_uri
:
str
,
table
:
str
)
->
None
:
"""
Update der URI in der DB
"""
Update der URI in der DB
Funktion zum Update der Datenbank mit den neuen URI aus dem Geocoder.
Funktion zum Update der Datenbank mit den neuen URI aus dem Geocoder.
...
@@ -84,18 +92,20 @@ class DBTools:
...
@@ -84,18 +92,20 @@ class DBTools:
Args:
Args:
param_dbid: ID der Schule aus der Datenbank (nicht AREG URI)
param_dbid: ID der Schule aus der Datenbank (nicht AREG URI)
param_uri: AREG URI
param_uri: AREG URI
table: Name der Tabelle aus welcher die Adressen selektiert werden
sollen
"""
"""
sql_alter
=
"""
sql_alter
=
f
"""
alter table
alter table
prototyp_areg.schu
le
n
{
tab
le
}
add column if not exists
add column if not exists
areg_uri varchar;
areg_uri varchar;
"""
"""
sql_update
=
f
"""
sql_update
=
f
"""
update
update
prototyp_areg.schu
le
n
{
tab
le
}
set
set
areg_uri=
'
{
param_uri
}
'
areg_uri=
'
{
param_uri
}
'
where
where
...
@@ -105,7 +115,7 @@ class DBTools:
...
@@ -105,7 +115,7 @@ class DBTools:
self
.
cursor
.
execute
(
sql_alter
)
self
.
cursor
.
execute
(
sql_alter
)
self
.
cursor
.
execute
(
sql_update
)
self
.
cursor
.
execute
(
sql_update
)
def
update_adress
(
self
,
data
:
"
dict[str,str]
"
,
param_uri
:
str
)
->
None
:
def
update_adress
(
self
,
data
:
"
dict[str,str]
"
,
param_uri
:
str
,
table
:
str
)
->
None
:
# noqa
"""
Updaten der Adressen mit AREG URI
"""
Updaten der Adressen mit AREG URI
Funktion zum Update der Datenbank mit den neuen Adressdaten aus dem
Funktion zum Update der Datenbank mit den neuen Adressdaten aus dem
...
@@ -114,13 +124,15 @@ class DBTools:
...
@@ -114,13 +124,15 @@ class DBTools:
Args:
Args:
data: Dictionary mit neuen Adressdaten aus der AREG API
data: Dictionary mit neuen Adressdaten aus der AREG API
param_uri: AREG URI zum zuordnen der Adressdaten
param_uri: AREG URI zum zuordnen der Adressdaten
table: Name der Tabelle aus welcher die Adressen selektiert werden
sollen
"""
"""
geometry
=
str
(
data
[
'
geometry
'
])
geometry
=
str
(
data
[
'
geometry
'
])
geometry
=
geometry
.
replace
(
"'"
,
'"'
)
geometry
=
geometry
.
replace
(
"'"
,
'"'
)
sql_alter
=
"""
sql_alter
=
f
"""
alter table
alter table
prototyp_areg.schu
le
n
{
tab
le
}
add column if not exists
add column if not exists
hnr varchar,
hnr varchar,
add column if not exists
add column if not exists
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment