Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1723 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Import CSV et encodage en UTF-8

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Import CSV et encodage en UTF-8

n°2299373
dagadevos
Posté le 19-04-2017 à 10:07:18  profilanswer
 

Bonjour,
 
Voilà je travail sur le logiciel QGIS (c'est pour faire des SIG) et je développe donc un plugin en python.
 
J'importe un CSV via un encore de selection de fichier :
 

Code :
  1. uri = "file:///"+ self.dlg.lineEdit_couche.text()\
  2.       + '?type=csv&delimiter=%s&crs=epsg:2154&xField=%s&yField=%s'\
  3.       % (str_delimiteur, xField, yField)
  4. uri = uri.encode("utf-8" )


 
Bref tout se passe bien et le CSV est bien importé, sauf que les datas à l'intérieur ne prennent pas les accents... Donc y a t'il un moyen pour encoder les datas du CSV ? j'ai testé différents trucs et ça n'a pas fonctionné :
 

Code :
  1. for row in uri :
  2.       yield [unicode(cell, 'utf-8') for cell in row]


 
Mais ça ne me le prends pas...
 
y aurait il une solution pour encoder ces différentes datas ??
 
Merci de vos réponses !!

mood
Publicité
Posté le 19-04-2017 à 10:07:18  profilanswer
 

n°2299386
h3bus
Troll Inside
Posté le 19-04-2017 à 13:22:15  profilanswer
 

J'ai pas compris, ta variable uri c'est bien une seule URI? Pourquoi tu itères dessus?
 
Sinon:
- Il faudrait savoir en quel format est encodé ton CSV, ton problème ne semblant pas réellement être l'encodage, mais le décodage
- Il y a des différence entyre python 2.7 et python 3 sur la gestion de l'encodage: http://lucumr.pocoo.org/2014/1/5/unicode-in-2-and-3/
 
Une lecture qui peux t'être utile: http://sametmax.com/lencoding-en-p [...] our-toute/


---------------
sheep++
n°2299390
dagadevos
Posté le 19-04-2017 à 13:35:25  profilanswer
 

Le gros problème c'est qu'il peut être potentiellement encodé en n'importe quoi celons le client qui l'utilise...
 
Ce code est un ancien code de mon prédécesseur d'après ce que j'ai compris la variable uri permet de prendre le fichier CSV, plus tard il est utilisé comme suis :
 

Code :
  1. layer = QgsVectorLayer(uri, nomAttribut ,'delimitedtext')


 
Ce "layer" permet de rajouter une couche sur une carte. Le layer est bien encodé en utf-8, donc le problème se situe sur "uri" celons moi.
 
Si j'ai bien compris sametmax.com en fait je n'ai pas de solution étant donné que mon fichier peut être de n'importe quel encoding...

n°2299391
h3bus
Troll Inside
Posté le 19-04-2017 à 13:42:29  profilanswer
 

Il ne semple pas exister de solution universelle.
Il existe des librairies qui font de leur mieux, je trouve pas mal de trucs avec "python determine encoding".


---------------
sheep++
n°2299392
dagadevos
Posté le 19-04-2017 à 13:45:20  profilanswer
 

merci je vais voir avec ça.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Import CSV et encodage en UTF-8

 

Sujets relatifs
Problème d'encodage ?[Python] Parser un CSV vers un format custom
Splitter (découper) un fichier CSVProblème encodage
Import module ou module.truc ou import*[MYSQL] Import fichier csv : empecher l'update de certaines colonnes
Insérer des données CSV dans un graph sur une page CSS/HTMLGrunt-Sass Libsass import sprites
[HTML] Problème d'encodage UTF-8 sur les pages secondaires 
Plus de sujets relatifs à : Import CSV et encodage en UTF-8


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR