Python: supprimer les caractères non ascii de csv


Dutta

J'ai un fichier csv seulement 4 des 4000 enregistrements ont des caractères non-ASCII. Par example

['com.manager', '2016012300', '16.1.23', 'en', 'kinzie', '2015-04-11T17:36:23Z', '1428773783781', '2016-03-11T09:53:45Z', 'df', '5', "\xa5\x06`'", '\xc0\x03"', '\xa2{\xac ===]\xa9}\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7>', '', '', '', 'https://play.google.com/apps/publish?account=sd#ReviewDetailsPlace:p=com.manager&reviewid=gp:AOqpTOEcQQGmjFcd-bFfU372DTrxh']

J'utilise le code python suivant pour lire le csv

with open('/Users/duttaam/Downloads/test1.csv', 'rU') as csvfile:
    reader_obj = csv.reader(x.replace('\0', '') for x in csvfile)
    rownum=0
    for row in reader_obj:
        rownum += 1
        if len(row) != 16:
            print rownum
            print row 

Pour quatre lignes, le lecteur affiche des numéros de colonne incohérents. Mais quand j'ai compté les délimiteurs (,) dans ces lignes, cela montre bien. Le seul problème que j'ai pu voir est celui des caractères non ascii comme l'exemple de ligne montré dans la ligne ci-dessus. Je suppose que ce sont des emojis convertis en caractères.

J'ai proposé une fonction pour supprimer les caractères non imprimables de la chaîne, comment puis-je l'appliquer à l'ensemble du csv? (Merci au post suivant: Suppression des caractères non imprimables d'une chaîne en python )

def removeSpecialcahr(s):
        printable = set(string.printable)
        return filter(lambda x: x in printable, s)

Existe-t-il un moyen de traiter le csv et de supprimer tous les caractères non imprimables et / ou non ascii?

Joeforker

Pour supprimer les caractères non ASCII de votre fichier, remplacez votre openappel par codecs.open(). Vous pouvez également définir votre propre gestionnaire d'erreurs ...:

import codecs
codecs.open('file.csv', 'r', encoding='ascii', errors='ignore')

Articles connexes


Supprimer les caractères non ASCII de String en Java

MM: J'ai un URI qui contient des caractères non ASCII comme: http://www.abc.de/qq/qq.ww?MIval=typo3_bsl_int_Smtliste&p_smtbez=Schmalbl ttrigeSomerzischeruchtanb Comment puis-je supprimer " " de cet URI VIEUX: Je suppose que la source de l'URL est plus en faute

Supprimer les caractères non ASCII de la colonne pandas

diable Rouge J'essaie de travailler sur ce problème depuis un certain temps. J'essaie de supprimer les caractères non ASCII de la colonne DB_user et j'essaie de les remplacer par des espaces. Mais je reçois toujours des erreurs. Voici à quoi ressemble mon bloc

Supprimer les caractères non ASCII en octave

Harold Decapia J'essaie de supprimer les caractères non ASCII lus à partir d'un fichier de données en utilisant OCTAVE mais je ne peux pas le faire fonctionner. J'ai essayé d'obtenir les codes ASCII de ces caractères "bizarres" et ils ont des codes ASCII aléat

Comment supprimer des caractères non ascii en python

Poggio Voici mon code: #!C:/Python27/python # -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup import urllib2 import sys import urlparse import io url = "http://www.dlib.org/dlib/november14/beel/11beel.html" #url = "http://eqa.unibo.it/arti