• Как в строке найти только нужный текст?

    Vindicar
    @Vindicar
    RTFM!
    Проверять равенство строк (==), а не вхождение подстроки в строку (in).
    Ответ написан
    Комментировать
  • Можно ли сохранить изменения в BeautifulSoup?

    @DarkwingDuck48 Автор вопроса
    Самостоятельно постигаю программирование на Python
    Нашел способ, как сохранять имена файлов. Надеюсь, что кому то пригодится.
    file = open(path_to_file, "r+")
    soup = BeautifulSoup(file, "lxml")
    links = soup.find_all("a")
    images = soup.find_all("img")
    file2 = open(path_to_file, "w+", encoding='utf-8')
    file2.write(soup.prettify())
    file2.close()
    Ответ написан
    Комментировать
  • С помощью какой библиотеки(python) можно конвертировать xml в pdf?

    Maksim_64
    @Maksim_64
    Data Analyst
    Я бы не использовал одну библиотеку здесь. Процесс, вряд ли будет протекать без проблемно.
    Я бы конвертировал xml в pandas фрейм, методом pd.read_xml() глянул бы на него, может чего подкорректировал, из фрейма уже конвертировал (по этапно) в pdf. Вот в этой статье https://www.alixaprodev.com/how-to-convert-pandas-... есть рабочий код три способа (один с использованием matplotlib), второй способ он использует конвертацию фрейма в html таблицу и оттуда уже в pdf, и третий там библиотеку он использует.

    Так вот я бы использовал способом pandas + matplotlib он даст мне больше всего контроля и свободы, как и в каком виде все это запишется в pdf, то есть я смогу кастомизировать + справится с потенциальными ошибками при записи. Рабочий пример (там фрейм создаетс, а не читается из xml это сделаешь сам pd.read_xml()) есть в статье по ссылке от которого уже можно оттолкнуться.
    Ответ написан
    1 комментарий
  • Как добавить словарь в существующий датафрейм pandas?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну во первых append метод запрещен и будет удален, так что его не используем. Если в двух словах то преобразовать во фрейм и конкатенировать, ну а если не в двух то вот.
    Сначала разберем как добавить новую строку. Используем метод concat для этого. Откроете документацию посмотрите все довольно просто. В вашим случае немножечко сложнее потому что ваш словарь простой
    {key1: value, key2:value}, что бы создать фрейм из словаря он должен быть такого вида some_dict = {'key1':[value],'key2':[value]}. Тогда мы можем просто создать фрейм командой pd.DataFrame(some_dict). Ничего особо переделывать не придется, просто использовать дополнительный метод from_records.
    shapka = {'Кадастровый № ОКС':[],'Вид ОКС':[],'Назначение':[],'Адрес ОКС':[],'Площадь':[],'Вид права':[],'ФИО':[],'Номер рег. записи':[]}
    df = pd.DataFrame(shapka)
    
    slovar = {'Кадастровый № ОКС': 'тут текст', 'Вид ОКС': 'тут текст', 'Назначение': 'тут текст', 'Адрес ОКС': 'тут текст', 'Площадь': 'тут текст', 'Вид права': 'тут текст', 'ФИО': 'тут текст', 'Номер рег. записи': 'тут текст'}
    new_df = pd.concat([df, pd.DataFrame.from_records([slovar])] ,ignore_index=True)


    Все вот так все заработает, как вы хотите, добавляйте новую строку к вашему фрейму. Ну а про concat почитаете в документации, что то будет не понятно спросите.

    И еще на что хотел бы обратить внимание это метод from_records.
    d1 = {'A':1,'B':2}
    d2 = {'A':3,'B':4}
    df = pd.DataFrame.from_records([d1,d2])
    print(df)

    То есть нам доступен список словарей, для создания фрейма.
    Ответ написан
    Комментировать