python - UnicodeDecodeError: 'utf-8' कोडेक बाइट डीकोड नहीं कर सकता है




python-3.x (5)

आपकी फ़ाइल में वास्तव में utf-8 एन्कोडेड डेटा नहीं है, इसमें कुछ अन्य एन्कोडिंग शामिल है। यह पता लगाएं कि एन्कोडिंग क्या है और इसे open कॉल में उपयोग करें।

उदाहरण के लिए विंडोज -1252 एन्कोडिंग में 0xe9 चरित्र होगा।

मेरा कोड यहाँ है,

for line in open('u.item'):
#read each line

जब भी मैं यह कोड चलाता हूं तो यह निम्न त्रुटि देता है:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte

मैंने इसे हल करने और खुले () में एक अतिरिक्त पैरामीटर जोड़ने की कोशिश की, कोड जैसा दिखता है;

for line in open('u.item', encoding='utf-8'):
#read each line

लेकिन फिर यह एक ही त्रुटि देता है। तब मुझे क्या करना चाहिए! कृपया मदद करे।


पांडा का उपयोग करके पढ़ने के लिए इसे आज़माएं

pd.read_csv('u.item', sep='|', names=m_cols , encoding='latin-1')

मेरे लिए भी काम किया, आईएसओ 885 9 -1 बहुत बचत करने जा रहा है, हाहाहा, मुख्य रूप से यदि स्पीच रिकग्निशन एपीआई का उपयोग करना है

उदाहरण:

file = open('../Resources/' + filename, 'r', encoding="ISO-8859-1");

यदि आप Python 2 का उपयोग कर रहे हैं तो निम्नलिखित समाधान होगा:

import io
for line in io.open("u.item", encoding="ISO-8859-1"):
    # do something

चूंकि encoding पैरामीटर open() साथ काम नहीं करता है, तो आपको निम्न त्रुटि मिल जाएगी:

TypeError: 'encoding' is an invalid keyword argument for this function

सभी समाधानों के सरलतम:

फ़ाइल पढ़ने के लिए पांडों का प्रयोग करें, यह बहुत आसान है:

import pandas as pd
data = pd.read_csv('file_name.csv', encoding='utf-8')




python-3.x