Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'utf-8' codec can't decode byte 0xa0 in position 4276: invalid start byte

I try to read and print the following file: txt.tsv (https://www.sec.gov/files/dera/data/financial-statement-and-notes-data-sets/2017q3_notes.zip)

According to the SEC the data set is provided in a single encoding, as follows:

Tab Delimited Value (.txt): utf-8, tab-delimited, \n- terminated lines, with the first line containing the field names in lowercase.

My current code:

import csv

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

All attempts ended with the following error message:

'utf-8' codec can't decode byte 0xa0 in position 4276: invalid start byte

I am a bit lost. Can anyone help me? Many thanks in advance.

like image 508
Vital Avatar asked Jan 02 '18 20:01

Vital


5 Answers

Encoding in the file is 'windows-1252'. Use:

open('txt.tsv', encoding='windows-1252')
like image 123
koPytok Avatar answered Oct 22 '22 13:10

koPytok


If someone works on Turkish data, then I suggest this line:

df = pd.read_csv("text.txt",encoding='windows-1254')
like image 38
Hasim D Avatar answered Oct 22 '22 13:10

Hasim D


ds = pd.read_csv('/Dataset/test.csv', encoding='windows-1252') 

Works fine for me, thanks.

like image 42
raj kumar Avatar answered Oct 22 '22 15:10

raj kumar


i have the same error message for .csv file, and This Worked for me :

     df = pd.read_csv('Text.csv',encoding='ANSI')
like image 1
Ghulam Dastgeer Avatar answered Oct 22 '22 13:10

Ghulam Dastgeer


I also encountered the same issue and worked while using latin1 encoding, refer to the sample code to apply in your codebase. Give a try if above resolution doesn't work.

df=pd.read_csv("../CSV_FILE.csv",na_values=missing, encoding='latin1')
like image 1
Suresh Gautam Avatar answered Oct 22 '22 15:10

Suresh Gautam