Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/40: Рейтинг темы: голосов - 40, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 19.06.2020
Сообщений: 37

TypeError: expected string or bytes-like object (При добавлении в БД Django)

11.06.2021, 19:09. Показов 8197. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
        def get_content(response):
            html = response.json()[0]['content']
            soup = BeautifulSoup(html, 'html.parser')
            countres = soup.find_all('div', class_='category-container')
 
            marathon = []
            for countre in countres:
                for championship in countre.find_all('a', class_='category-label-link'):
                    for team in countre.find_all('div', class_='bg coupon-row'):
                        marathon.append({
                            'date': team.find('td', class_='date').text.split(),
                            'name_championship': championship.text,
                            'name_teams': team.attrs['data-event-name'],
                            'p1': team.find('td', {'data-market-type': 'RESULT'}).text.split(),
                            'X': team.find('td', {'data-market-type': 'RESULT'}).find_next('td', {
                                'data-market-type': 'RESULT'}).text.split(),
                            'p2': team.find('td', {'data-market-type': 'RESULT'}).find_next('td', {
                                'data-market-type': 'RESULT'}).find_next('td',
                                                                         {'data-market-type': 'RESULT'}).text.split(),
                            'x1': team.find('td', {'data-market-type': 'DOUBLE_CHANCE'}).text.split(),
                            '12': team.find('td', {'data-market-type': 'DOUBLE_CHANCE'}).find_next('td', {
                                'data-market-type': 'DOUBLE_CHANCE'}).text.split(),
                            'x2': team.find('td', {'data-market-type': 'DOUBLE_CHANCE'}).find_next('td', {
                                'data-market-type': 'DOUBLE_CHANCE'}).find_next('td', {
                                'data-market-type': 'DOUBLE_CHANCE'}).text.split(),
                        })
            return marathon
 
        def main():
            for i in range(100):
                print(f'парсинг {i} страницы.....')
                URL = 'https://www.marathonbet.ru/su/betting/11?periodGroupAllEvents=24&page=' + str(
                    i) + '&pageAction=getPage&_=1604928938537'
                html = get_html(URL)
                content = get_content(html)
                Bet(date=content[i]['date'], title=content[i]['name_championship'], name_command=content[i]['name_teams'], score='roma', p1=content[i]['p1'], X=content[i]['X'], p2=content[i]['p2'], X1=content[i]['x1'], par12=content[i]['12'], X2=content[i]['x2']).save()
                if content == []:
                    print('Закончен')
                    break
 
        main()
Итак, объясняю, вообщем это парсер(кусок кода с URL HEADERS и REQUESTS не вставил). Он парсит сайт marathon, и берёт те элементы, которые есть в списке MARATHON. Вы спросите, а как это связано с Django, дело в том что он должен результаты вставлять в БД Django. И вот когда я хочу это сделать:
Python
1
Bet(date=content[i]['date'], title=content[i]['name_championship'], name_command=content[i]['name_teams'], score='roma', p1=content[i]['p1'], X=content[i]['X'], p2=content[i]['p2'], X1=content[i]['x1'], par12=content[i]['12'], X2=content[i]['x2']).save()
Мне выводит ошибку: TypeError: expected string or bytes-like object
Если что модель импортирована, всё нужное импортировано.

Для удобства вот кусок кода с моделями:
Python
1
2
3
4
5
6
7
8
9
10
11
class Bet(models.Model):
    date = models.DateField('Дата', null=True)
    title = models.CharField('Название чемпионата', null=True, max_length=250)
    name_command = models.CharField('Название команды', null=True, max_length=250)
    score = models.CharField('Cчёт', null=True, max_length=250)
    p1 = models.CharField('P1', null=True, max_length=250)
    X = models.CharField('X', null=True, max_length=250)
    p2 = models.CharField('P2', null=True, max_length=250)
    X1 = models.CharField('X1', null=True, max_length=250)
    par12 = models.CharField('12', null=True, max_length=250)
    X2 = models.CharField('X2', null=True, max_length=250)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.06.2021, 19:09
Ответы с готовыми решениями:

TypeError: expected string or bytes-like object
Привет, в универе задали сделать сравнение алгоритмов сортировки и прикрутить к этому всему экселевскую табличку со знанчениями и прочим(1...

TypeError: expected str, bytes or os.PathLike object, not _io.BytesIO
Помогите ошибка Traceback (most recent call last): File "python100new.py", line 43, in <module> File "hooman\hooman.py",...

Ошибка TypeError: expected str, bytes or os.PathLike object, not list
В попытках выучить питон добрался до архивов файлов. Хотел сделать что-то вроде автоматического архиватора, который бы создавал архив с...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.06.2021, 21:52
Цитата Сообщение от Gars123 Посмотреть сообщение
Мне выводит ошибку: TypeError: expected string or bytes-like object
Если что модель импортирована, всё нужное импортировано.
а ты точно прочел ошибку? тут не про импорты)
давай ошибку целиком, там должно быть указано что конкретно не так
1
0 / 0 / 0
Регистрация: 19.06.2020
Сообщений: 37
12.06.2021, 16:14  [ТС]
Вообщем всё поменялось, теперь я исправил код в парсере(убрал лишний список, теперь все вот эти элементы в 1 словаре.) и всё равно выводит эту же ошибку Ужас.... Но код парсера работает, через принт выводит любой элемент словаря, а ошибка появляется когда я пытаюсь загрузить данные из словаря в БД Django.
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
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    main()
  File "manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\core\management\__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\core\management\__init__.py", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\core\management\base.py", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\core\management\base.py", line 398, in execute
    output = self.handle(*args, **options)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\WebBet\bet\management\commands\main.py", line 72, in handle
    main()
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\WebBet\bet\management\commands\main.py", line 70, in main
    Bet(date=slovar[m]['date'], title=slovar[m]['name_championship'], name_command=slovar[m]['name_teams'], score='roma', p1=slovar[m]['p1'], X=slovar[m]['X'], p2=slo
var[m]['p2'], X1=slovar[m]['x1'], par12=slovar[m]['12'], X2=slovar[m]['x2']).save()
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\base.py", line 726, in save
    self.save_base(using=using, force_insert=force_insert,
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\base.py", line 763, in save_base
    updated = self._save_table(
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\base.py", line 868, in _save_table
    results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\base.py", line 906, in _do_insert
    return manager._insert(
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\query.py", line 1270, in _insert
    return query.get_compiler(using=using).execute_sql(returning_fields)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1415, in execute_sql
    for sql, params in self.as_sql():
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1358, in as_sql
    value_rows = [
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1359, in <listcomp>
    [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1359, in <listcomp>
    [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1300, in prepare_value
    value = field.get_db_prep_save(value, connection=self.connection)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\fields\__init__.py", line 842, in get_db_prep_save
    return self.get_db_prep_value(value, connection=connection, prepared=False)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\fields\__init__.py", line 1271, in get_db_prep_value
    value = self.get_prep_value(value)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\fields\__init__.py", line 1266, in get_prep_value
    return self.to_python(value)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\db\models\fields\__init__.py", line 1228, in to_python
    parsed = parse_date(value)
  File "C:\Usersоктор-Эксперт\PycharmProjects\WebBet\venv\lib\site-packages\django\utils\dateparse.py", line 75, in parse_date
    match = date_re.match(value)
TypeError: expected string or bytes-like object
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
12.06.2021, 16:27
Лучший ответ Сообщение было отмечено Gars123 как решение

Решение

Цитата Сообщение от Gars123 Посмотреть сообщение
slovar[m]['date']
там точно дата в виде строки?
1
0 / 0 / 0
Регистрация: 19.06.2020
Сообщений: 37
12.06.2021, 16:53  [ТС]
Спасибоооо, вы мне подали идею всё сделать в виде строки Код заработал!
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
12.06.2021, 16:56
Цитата Сообщение от Gars123 Посмотреть сообщение
подали идею всё сделать в виде строки
я?))) вот же интепретатор писал вам несколько раз выше)
0
0 / 0 / 0
Регистрация: 19.06.2020
Сообщений: 37
12.06.2021, 19:02  [ТС]
Интерпретатор какой-то странный много ошибок выдал, я сразу не понял, засыпался. А вы написали: "там точно дата в виде строки?", значит надо сделать всё в виде строки. И да ответ на ваш вопрос: 'Нет, дата с цифрами'.
Огромная благодарность вам, какой раз уже спасаете мне жизнь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.06.2021, 19:02
Помогаю со студенческими работами здесь

Возникло исключение: TypeError expected str, bytes or os.PathLike object, not _io.TextIOWrapper
Ошибка Возникло исключение: TypeError expected str, bytes or os.PathLike object, not _io.TextIOWrapper File...

TypeError: cannot use a string pattern on a bytes-like object
#!/usr/bin env python import subprocess import optparse import re def get_arguments(): parser = optparse.OptionParser()...

TypeError: int() argument must be a string, a bytes-like object or a number, not 'User'
Решил добавить блогу автора комментария, но когда ввожу сам комментарий выдаёт ошибку TypeError: int() argument must be a string, a...

TypeError: int() argument must be a string, a bytes-like object or a real number, not 'Category'
Добрый день! Занимаюсь по видео selfedu и возникла следующая ошибка Environment: Request Method: GET Request URL:...

TypeError: int() argument must be a string, a bytes-like object or a real number, not 'list'
Есть у меня цикл, который определяет скорость всех подключенных мпользователей в списке: for player in players: x =...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[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-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru