mirror of
https://github.com/xbgmsharp/postgsail.git
synced 2025-09-17 11:17:46 +00:00
Add geojson_py_fn in python
This commit is contained in:
@@ -370,6 +370,10 @@ COMMENT ON FUNCTION
|
|||||||
public.reverse_geoip_py_fn
|
public.reverse_geoip_py_fn
|
||||||
IS 'Retrieve reverse geo IP location via ipapi.co using plpython3u';
|
IS 'Retrieve reverse geo IP location via ipapi.co using plpython3u';
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
-- python url escape
|
||||||
|
--
|
||||||
|
DROP FUNCTION IF EXISTS urlescape_py_fn;
|
||||||
CREATE OR REPLACE FUNCTION urlescape_py_fn(original text) RETURNS text LANGUAGE plpython3u AS $$
|
CREATE OR REPLACE FUNCTION urlescape_py_fn(original text) RETURNS text LANGUAGE plpython3u AS $$
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
return urllib.parse.quote(original);
|
return urllib.parse.quote(original);
|
||||||
@@ -379,3 +383,27 @@ IMMUTABLE STRICT;
|
|||||||
COMMENT ON FUNCTION
|
COMMENT ON FUNCTION
|
||||||
public.urlescape_py_fn
|
public.urlescape_py_fn
|
||||||
IS 'URL-encoding VARCHAR and TEXT values using plpython3u';
|
IS 'URL-encoding VARCHAR and TEXT values using plpython3u';
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
-- python geojson parser
|
||||||
|
--
|
||||||
|
DROP FUNCTION IF EXISTS geojson_py_fn;
|
||||||
|
CREATE OR REPLACE FUNCTION geojson_py_fn(original JSONB) RETURNS JSONB LANGUAGE plpython3u
|
||||||
|
AS $geojson_py$
|
||||||
|
import json
|
||||||
|
parsed = json.loads(original)
|
||||||
|
output = []
|
||||||
|
for i, item in enumerate(parsed):
|
||||||
|
for geom in item:
|
||||||
|
#print(geom)
|
||||||
|
if geom['geometry']['type'] == 'LineString':
|
||||||
|
#plpy.notice('deleting...')
|
||||||
|
parsed[i].remove(geom)
|
||||||
|
output += parsed[i]
|
||||||
|
return json.dumps(output)
|
||||||
|
$geojson_py$
|
||||||
|
IMMUTABLE STRICT;
|
||||||
|
-- Description
|
||||||
|
COMMENT ON FUNCTION
|
||||||
|
public.geojson_py_fn
|
||||||
|
IS 'Parse geojson using plpython3u (should be done in PGSQL)';
|
||||||
|
Reference in New Issue
Block a user