Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.06.2021
Сообщений: 14

Проблема с кодировкой

24.06.2021, 19:34. Показов 1493. Ответов 7

Студворк — интернет-сервис помощи студентам
Друзья, помогите пожалуйста, ниже приведен код который опробован не на одном xml файле, но на одном конкретном файле выдает следующую ошибку:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xdd in position 6024: invalid continuation byte

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from bs4 import BeautifulSoup as bs
import requests
import os, sys
 
 
def xml_feeds():
    
    files_list = ['mobileapp']
 
    for file in files_list:
        new_warnings_filename = file + '_we1'
        warnings_list = []
        with open(r'C:\Users\nik\Desktop\программыадание Егора\mobileapp.xml', 'r', encoding='UTF-8') as open_file:
            code = ''.join(open_file.readlines())
 
        soup_code = bs(code, 'lxml')
        offers_found = soup_code.find_all('offer')
        print(len(offers_found))
 
 
 
        for index in range(len(offers_found)):
            print(index, end=' ')
            found = offers_found[index].find_all('categoryid')
            if len(soup_code.find_all('category', {'id': found[0].text})) == 0:
                warnings_list.append(f'No category found [{offers_found[index]["id"]}: {found[0].text}]\n')
            if len(found) > 1:
                if len(soup_code.find_all('category', {'id': found[1].text})) == 0:
                    warnings_list.append(f'No category found [{offers_found[index]["id"]}: {found[1].text}]\n')
            with open(f'{new_warnings_filename}.txt', 'w', encoding='utf-8') as open_file_1:
                open_file_1.writelines(warnings_list)
 
        print()
        print('Tags are done!')
 
        c = 0
        for index in range(len(offers_found)):
            if len(offers_found[index].find_all('picture')) < 1:  
                warnings_list.append(f'No image found in offer id: {offers_found[index]["id"]}\n')
                with open(f'{new_warnings_filename}.txt', 'w', encoding='utf-8') as open_file_1:
                    open_file_1.writelines(warnings_list)
 
        for index in range(len(offers_found)):
            if len(offers_found[index].find_all('price')) < 1: 
                warnings_list.append(f'No price found in offer id: {offers_found[index]["id"]}\n')
                with open(f'{new_warnings_filename}.txt', 'w', encoding='utf-8') as open_file_1:
                    open_file_1.writelines(warnings_list)
 
        with open(f'{new_warnings_filename}.txt', 'w', encoding='utf-8') as open_file_1:
            open_file_1.writelines(warnings_list)
        os.startfile(f'{new_warnings_filename}.txt')
 
 
if __name__ == '__main__':
    xml_feeds()
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.06.2021, 19:34
Ответы с готовыми решениями:

Проблема с кодировкой
Добрый день!! Есть такой код. # -*- coding: utf-8 -*- import json data = '''''' datas = json.loads(data)

PyCharm проблема с кодировкой
Здравствуйте. Всех с наступающим Новым годом!!! При записи в файл вместо русских букв вопросы. В настройках PyCharm установил в редакторе...

Проблема с кодировкой c Python 2.7.x
Мяч (ООП) На основе книги &quot;Hello World!&quot; Уоррен Сэнд, Картер Сэнд В контексте объяснения, что такое self некоторые строки...

7
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
24.06.2021, 20:07
Artem_D_A, что с другими кодировками? win1251, oem866?
0
0 / 0 / 0
Регистрация: 24.06.2021
Сообщений: 14
24.06.2021, 20:09  [ТС]
Выдает ошибку LookupError
0
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
24.06.2021, 20:13
Artem_D_A, возможно смешение кодировок... пробуй в ручную удалить кривую букву.
0
0 / 0 / 0
Регистрация: 24.06.2021
Сообщений: 14
24.06.2021, 20:15  [ТС]
Извиняюсь, туплю... Как ее найти?
Задача стоит в том, чтобы любой файл вставлялся и если будет ошибка, исправлялась, как это програмно сделать?
0
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
24.06.2021, 20:53
Лучший ответ Сообщение было отмечено Artem_D_A как решение

Решение

Artem_D_A, програмно не знаю,- суть в том, что у тебя скорее всего битый файл.
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
24.06.2021, 22:51
Цитата Сообщение от Artem_D_A Посмотреть сообщение
utf-8' codec can't decode byte 0xdd in position 6024
У тебя этот файл либо не utf-8, либо что-то не так на позиции 6024.

И кто тебя учил писать такой страшный нечитабельный код?

1) C:\Users\nik\Desktop\программы\Задание Егора\mobileapp.xml ты открываешь это файл в цикле, что крайне бессмысленно
2) with open(f'{new_warnings_filename}.txt', 'w', encoding='utf-8') as open_file_1: - опять в цикле (в трех циклах сразу), что также трижды бессмысленно. Они же перезаписываются на каждой! итерации.

3) index - для переменной цикла есть общепринятое сокращение i
Зачем вообще использовать range c индексами, когда у тебя там список с объектами?

4) open_file_1 - для переменной файлового объекта есть общепринятое сокращение f

5) Длина строки кода не должна превышать 80 символов. Читай PEP-8.

P.S. Логика кода абсолютно убитая.
0
0 / 0 / 0
Регистрация: 24.06.2021
Сообщений: 14
25.06.2021, 11:05  [ТС]
Не мой изначально код, это я его еще поправил немного, так что не судите строго))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.06.2021, 11:05
Помогаю со студенческими работами здесь

Проблема с кодировкой при парсинге
Обучаюсь парсингу и начал писать свой собственный код. Хронология действий: - Скопировал главную страницу в html файл на свой...

Проблема с кодировкой при парсинге
Уважаемые программисты. Изучаю python. Есть Html: &lt;!DOCTYPE html&gt; &lt;head&gt;&lt;title&gt;Заголовок веб-сайта&lt;/title&gt;&lt;/head&gt; ...

Проблема с русской кодировкой в программе
Здравствуйте! Я не очень хорошо знаю Python, в основном делаю задания на С++. Но данную задачу лучше делать на Python. Необходимо...

Запуск локального сервера Django, проблема с кодировкой
Здравствуйте форумчане! Подскажите почему не получается запустить локальный сервер? Я подозреваю что с кодировкой что то не в порядке......

Web server IIS, проблема с кодировкой кириллицы из template (атрибута передаваемого вьюшке)
Добрых суток! С web-server Django все в порядке. Таки полагаю проблема в настройках IIS и как вариант обхода - конвертация атрибута во...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru