[Pywps-dev] pywps - json output

Jonas Eberle jonas.eberle at gmx.de
Sun Oct 23 13:10:51 PDT 2016


Hi Sylvain, 

if you have only one output, you can use the rawdataoutput paramater, just like this WPS request: 

http://artemis.geogr.uni-jena.de/cgi-bin/testbox.cgi?service=WPS&version=1.0.0&request=Execute&identifier=fossgis_wps_proj&datainputs=[epsg_target=2927;epsg_source=4326;wkt=POINT(11%2051)] &rawdataoutput=output 

In your case it should be &rawdataoutput=out. Then you will get directly the data from this output. 

Cheers, 
Jonas 

----- Am 23. Okt 2016 um 19:17 schrieb Sylvain Beorchia <sylvain.beorchia at gmail.com>: 

> Thank you for the fix Jachym.
> But apparently it just changes the output, from :

> ...
> <wps:ComplexData mimeType="application/geojson" >
> <![CDATA[
> WwogICJmb28iLCAKICB7CiAgICAiYmFyIjogWwogICAgICAiYmF6IiwgCiAgICAgIG51bGwsIAogICAgICAxLjAsIAogICAgICAyCiAgICBdCiAgfQpd
> ]]>
> </wps:ComplexData>

> to:

> <wps:ComplexData mimeType =" application/geojson " >
> [ "foo", { "bar": [ "baz", null, 1.0, 2 ] } ]
> </wps:ComplexData>

> JSON, but still in XML result.
> Am i doing something wrong in my code ?

> Thanks .

> Sylvain.

> 2016-10-23 8:01 GMT+02:00 Jachym Cepicky < jachym.cepicky at gmail.com > :

>> Hi Sylvain,
>> fixed in master https://github.com/geopython/pywps/pull/201

>> Hope, it works

>> J

>> so 22. 10. 2016 v 23:42 odesílatel Sylvain Beorchia < sylvain.beorchia at gmail.com
>> > napsal:

>>> Hi all,

>>> Trying to build my first WPS, i want to return JSON outputs. After many tests, i
>>> always got some JSON encoded chars embeded in XML, or clear JSON embeded in
>>> XML...always XML.
>>> Here is the simple code i've tried :

>>> import json
>>> from pywps import Process, LiteralInput, LiteralOutput, OGCUNIT, UOM,
>>> ComplexInput, ComplexOutput, Format, FORMATS

>>> class Test(Process):
>>> def __init__(self):
>>> inputs = [LiteralInput('name', 'Input name', data_type='string')]
>>> outputs = [ComplexOutput('out', 'Referenced Output',
>>> supported_formats=[Format('application/geojson')])]

>>> super(Test, self).__init__(
>>> self._handler,
>>> identifier='cartogsm',
>>> title='Process Test',
>>> version='1.0.0.0',
>>> inputs=inputs,
>>> outputs=outputs,
>>> store_supported=True,
>>> status_supported=True
>>> )

>>> def _handler(self, request, response):
>>> data = json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
>>> out_bytes = json.dumps(data, indent=2)
>>> response.outputs['out'].output_format = 'application/json'
>>> response.outputs['out'].data = out_bytes

>>> return response

>>> Ouput :
>>> ...
>>> <wps:ProcessOutputs>
>>> <wps:Output>
>>> <ows:Identifier>out</ows:Identifier>
>>> <ows:Title>Referenced Output</ows:Title>
>>> <wps:Data>
>>> <wps:ComplexData mimeType="application/geojson">
>>> <![CDATA[
>>> WwogICJmb28iLCAKICB7CiAgICAiYmFyIjogWwogICAgICAiYmF6IiwgCiAgICAgIG51bGwsIAogICAgICAxLjAsIAogICAgICAyCiAgICBdCiAgfQpd
>>> ]]>
>>> </wps:ComplexData>
>>> </wps:Data>
>>> </wps:Output>
>>> </wps:ProcessOutputs>
>>> </wps:ExecuteResponse>

>>> How can i return only JSON, with no XML at all ?

>>> Thank you.
>>> _______________________________________________
>>> pywps-dev mailing list
>>> pywps-dev at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/pywps-dev
> _______________________________________________
> pywps-dev mailing list
> pywps-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pywps-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pywps-dev/attachments/20161023/47cbdd05/attachment-0001.html>


More information about the pywps-dev mailing list