[OWSLib-users] OWSLib UnicodeEncodeError with accents [SEC=UNCLASSIFIED]
Dominic Lowe
D.Lowe at bom.gov.au
Thu Jun 16 19:32:45 PDT 2016
Hi Sophie,
This is working for me too using Python 2.7.6 on Ubuntu, inserting into Geonetwork 3.0.3.0
I also have:
>print sys.getdefaultencoding()
>ascii
This is using the latest version of OWSLib: 0.11.2.
Regards
Dom
-----Original Message-----
From: OWSLib-users [mailto:owslib-users-bounces at lists.osgeo.org] On Behalf Of Tom Kralidis
Sent: Thursday, 16 June 2016 8:07 AM
To: Sophie Mollard
Cc: owslib-users at lists.osgeo.org
Subject: Re: [OWSLib-users] OWSLib UnicodeEncodeError with accents
Hi Sophie: FYI I'm able to insert this metadata to a CSW using OWSLib without issue. You'll want to consult your CSW server to further debug.
..Tom
On Wed, Jun 8, 2016 at 8:28 AM, Sophie Mollard <sophie.mollard at mshe.univ-fcomte.fr> wrote:
> Hi Tom,
>
> Here is the metadata file attached.
>
> Thank you,
>
>
> Sophie MOLLARD
>
> Pôle Géomatique
> MSHE C. N. Ledoux (USR 3124)
> Université de Franche-Comté
> Tél : 03.81.66.51.55
>
> Le 07/06/2016 20:56, Tom Kralidis a écrit :
>
> Hi Sophie: can you post a test case/XML metadata so I can try to reproduce?
>
> On Tue, Jun 7, 2016 at 10:39 AM, Sophie Mollard
> <sophie.mollard at mshe.univ-fcomte.fr> wrote:
>
> Hi list,
>
> I'm using owslib to insert metadata files into GeoNetwork with a
> python 2.7 script. It works fine except with metadatas which contain accents.
>
> csw.transaction(ttype='insert', typename='gmd:MD_Metadata',
> record=open('Haies_Franche_Comte_metadata.xml').read())
>
> File "/usr/lib/python2.7/dist-packages/owslib/csw.py", line 432, in
> transaction
> self._invoke()
> File "/usr/lib/python2.7/dist-packages/owslib/csw.py", line 635, in
> _invoke
> self.response = util.http_post(xml_post_url, self.request,
> self.lang, self.timeout, self.username, self.password)
> File "/usr/lib/python2.7/dist-packages/owslib/util.py", line 372, in
> http_post
> up = urllib2.urlopen(r,timeout=timeout);
> File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
> return opener.open(url, data, timeout)
> File "/usr/lib/python2.7/urllib2.py", line 431, in open
> response = self._open(req, data)
> File "/usr/lib/python2.7/urllib2.py", line 449, in _open
> '_open', req)
> File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain
> result = func(*args)
> File "/usr/lib/python2.7/urllib2.py", line 1227, in http_open
> return self.do_open(httplib.HTTPConnection, req)
> File "/usr/lib/python2.7/urllib2.py", line 1194, in do_open
> h.request(req.get_method(), req.get_selector(), req.data, headers)
> File "/usr/lib/python2.7/httplib.py", line 1001, in request
> self._send_request(method, url, body, headers)
> File "/usr/lib/python2.7/httplib.py", line 1035, in _send_request
> self.endheaders(body)
> File "/usr/lib/python2.7/httplib.py", line 997, in endheaders
> self._send_output(message_body)
> File "/usr/lib/python2.7/httplib.py", line 854, in _send_output
> self.send(message_body)
> File "/usr/lib/python2.7/httplib.py", line 826, in send
> self.sock.sendall(data)
> File "/usr/lib/python2.7/socket.py", line 224, in meth
> return getattr(self._sock,name)(*args)
> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in
> position
> 1952: ordinal not in range(128)
>
> I've written at the beginning of the script :
>
> !/usr/bin/python
> # -*-coding:Utf-8 -*
>
> My metadata file is in utf-8 too :
>
> georchestra-ouvert at georchestra-dev:~/bin/lib$ file -i
> Haies_Franche_Comte_metadata.xml
> Haies_Franche_Comte_metadata.xml: text/plain; charset=utf-8
>
> However, my python environement is :
>
> print sys.getdefaultencoding()
> ascii
>
> I've tried to change it in utf-8 but then, I've obtained this error
> with owslib :
>
> csw.transaction(ttype='insert', typename='gmd:MD_Metadata',
> record=open('Haies_Franche_Comte_metadata.xml').read())
> File "/usr/lib/python2.7/dist-packages/owslib/csw.py", line 432, in
> transaction
> self._invoke()
> File "/usr/lib/python2.7/dist-packages/owslib/csw.py", line 635, in
> _invoke
> self.response = util.http_post(xml_post_url, self.request,
> self.lang, self.timeout, self.username, self.password)
> File "/usr/lib/python2.7/dist-packages/owslib/util.py", line 372, in
> http_post
> up = urllib2.urlopen(r,timeout=timeout);
> File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
> return opener.open(url, data, timeout)
> File "/usr/lib/python2.7/urllib2.py", line 437, in open
> response = meth(req, response)
> File "/usr/lib/python2.7/urllib2.py", line 550, in http_response
> 'http', request, response, code, msg, hdrs)
> File "/usr/lib/python2.7/urllib2.py", line 475, in error
> return self._call_chain(*args)
> File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain
> result = func(*args)
> File "/usr/lib/python2.7/urllib2.py", line 558, in http_error_default
> raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
> urllib2.HTTPError: HTTP Error 500: Erreur Interne de Servlet
>
> What am I doing wrong ? Have you any idea ?
>
> Thank you in advance,
>
> --
> Sophie MOLLARD
>
> Pôle Géomatique
> MSHE C. N. Ledoux (USR 3124)
> Université de Franche-Comté
> Tél : 03.81.66.51.55
>
> _______________________________________________
> OWSLib-users mailing list
> OWSLib-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/owslib-users
>
>
>
> _______________________________________________
> OWSLib-users mailing list
> OWSLib-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/owslib-users
_______________________________________________
OWSLib-users mailing list
OWSLib-users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/owslib-users
More information about the OWSLib-users
mailing list