Кодек Python 2.7 ascii 'не может кодировать символ u' \ xe4 - PullRequest
0 голосов
/ 06 июля 2018

У меня возникла проблема с кодом в Python 2.7, я уже использовал UTF-8, но он все еще получил исключение

"UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 81: ordinal not in range(128)"

Мои файлы содержат столько дерьма, но по какой-то причине мне не разрешено его удалять.

desktop,[Search] Store | Automated Titles,google / cpc,Titles > Kesäkaverit,275285048,13

Я попробовал описанный ниже метод, чтобы избежать, но все же не смог это исправить. Кто-нибудь может мне помочь?

1. С "#!/usr/bin/python" in my file header

2.Настройка setdefaultencoding

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

3. content = unicode(s3core.download_file_to_memory(S3_PROFILE, S3_RAW + file), "utf-8", "ignore")

Мой код ниже

    content = unicode(s3core.download_file_to_memory(S3_PROFILE, S3_RAW + file), "utf8", "ignore")
    rows = content.split('\n')[1:]
    for row in rows:
        if not row:
            continue

        try:
            # fetch variables
            cols = row.rstrip('\n').split(',')
            transaction = cols[0]
            device_category = cols[1]
            campaign = cols[2]
            source = cols[3].split('/')[0].strip()
            medium = cols[3].split('/')[1].strip()
            ad_group = cols[4]
            transactions = cols[5]

            data_list.append('\t'.join(
                ['-'.join([dt[:4], dt[4:6], dt[6:]]), country, transaction, device_category, campaign, source,
                 medium, ad_group, transactions]))

        except:
            print 'ignoring row: ' + row
...