web-dev-qa-db-fra.com

Le codec 'utf-8' ne peut décoder l'octet 0xa0 en position 4276: octet de début non valide

J'essaie de lire et d'imprimer le fichier suivant: txt.tsv ( https://www.sec.gov/files/dera/data/financial-statement-and-notes-data-sets/2017q3_notes.Zip )

Selon la SEC, le jeu de données est fourni dans un seul codage, comme suit:

Valeur délimitée par des tabulations (.txt): utf-8, lignes\n délimitées par des tabulations, la première ligne contenant les noms de champs en minuscule.

Mon code actuel:

import csv

with open('txt.tsv') as tsvfile:
    reader = csv.DictReader(tsvfile, dialect='Excel-tab')
    for row in reader:
        print(row)

Toutes les tentatives se sont terminées avec le message d'erreur suivant:

Le codec 'utf-8' ne peut décoder l'octet 0xa0 en position 4276: octet de début non valide

Je suis un peu perdu. Quelqu'un peut-il m'aider? Merci d'avance.

7
Vital

Le codage dans le fichier est 'windows-1252'. Utilisation:

open('txt.tsv', encoding='windows-1252')
10
koPytok

Si quelqu'un travaille sur des données turques, alors je suggère cette ligne: 

df = pd.read_csv("text.txt",encoding='windows-1254')
2
Hasim D

j'ai le même message d'erreur pour le fichier .csv, et cela a fonctionné pour moi:

     df = pd.read_csv('Text.csv',encoding='ANSI')
0
Ghulam Dastgeer