Как текст из BeautifulSoup, содержащий даты, преобразовать и выгрузить в словарь

gerzzog

Новичок
Пользователь
Дек 24, 2021
12
0
1
Приветствую всех.
У меня проблема с выгрузкой из объекта BeautifulSoup в словарь.
В выгрузке есть даты и при сохранении в словарь выбивает ошибка:
ress[noumber][text]['text'] = str(field)
TypeError: 'datetime.date' object is not subscriptable


Как бы загрузить данные, чтобы дата стали в обычном формате? У меня подозрение, что нужен цикл, который
бы перебирал каждый объект в BeautifulSoup и, если это дата, то переводил в string? Но как это реализовать знаний не хватает
и в интернете что-то найти не могу

Код:
import pyodbc, json, requests, time,bs4,datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# подключаюсь к базе данных на работе и получаю ФИО, даты рождения сотрудников
mySQLServer = "..."
myDataBase = "..."
connection = ...
cursor = connection.cursor()
mySQLQuery = ('''
            SELECT name1, name2, name3, name, birthday
  FROM ... s.  ''')
cursor.execute(mySQLQuery)
results = cursor.fetchall()
ress = {}
noumber = ''
text = ''
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-gpu")
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://asvpweb.minjust.gov.ua/#/search-debtors')
for i in results:
    for l in range(0,len(i)):
        time.sleep(5)
        # загружаю Фамилию
        driver.find_element_by_id("inputPersonSurname").send_keys(i[l])
        l = l + 1
        # загружаю Имя
        driver.find_element_by_id("inputPersonName").send_keys(i[l])
        l = l + 1
        # загружаю Отчество
        driver.find_element_by_id("inputPersonPatro").send_keys(i[l])
        l = l + 2
        # загружаю дату рождения
        driver.find_element_by_id("inputPersonBirthDate").send_keys(str(i[l]))
        time.sleep(5)
        # нажимаю кнопку Поиск
        button = driver.find_element_by_xpath("//button[@tabindex='23']")
        button.click()
        time.sleep(5)
        # сохраняю данные через BeautifulSoup
        tableProducts = driver.find_element_by_xpath('/html/body/div[1]/ui-view/div[2]/div[3]/div/table[1]');
        field = bs4.BeautifulSoup(tableProducts.text, 'html.parser')   
        ress.setdefault(noumber, {})
        ress[noumber].setdefault(text, {'text': ''})
        ress[noumber] = i[4]
        ress[noumber][text]['text'] = str(field)
 

Форум IT Специалистов