Как исправить ошибку JSON UnicodeDecodeError: ‘utf-8’ в Python?

#python #json #pycharm

#python #json #pycharm

Вопрос:

При попытке чтения из моего JSON-файла с именем «RC_2015-01» я получаю ошибку декодирования. Проблема возникает в строке 8 извлечения «для строки в f:».

Другие пользователи не сообщали о проблемах с файлом JSON, поэтому я считаю, что это проблема с моим кодом.

Я использую python 3.7 и pycharm в качестве моей IDE.

Я пытался добавить несколько параметров encoding = «example» в функцию open, но безуспешно.

 if __name__ == '__main__':
    create_table()
    row_counter = 0
    paired_rows = 0

    with open('RC_{}.bz2'.format(timeframe), buffering=1000) as f:
        print(f)
        for row in f:
            print(row)
            row_counter  = 1
            row = json.loads(row)
            parent_id = row['parent_id']
            body = format_data(row['body'])
            created_utc = row['created_utc']
            score = row['score']
            comment_id = row['name']
            subreddit = row['subreddit']
  

Комментарии:

1. У этого будет проблема, потому что вы не используете json модуль для разбора всего файла. Вы не можете обрабатывать JSON как обычный файл и надеяться, что анализатор будет работать, читая строки.

2. Может быть, откройте этот файл и попробуйте проверить строку вручную?

3. Это действительно в формате JSON Lines ?

Ответ №1:

С вашей помощью я обнаружил, что ошибка заключалась в попытке чтения непосредственно из заархивированного файла, после извлечения файл можно было прочитать без проблем.