Можете ли вы написать список выбора в один столбец в SQL? - PullRequest
1 голос
/ 30 апреля 2019

Во-первых, я не ИТ-специалист / студент, я только начинаю изучать программирование и данные, поэтому заранее прошу прощения, если вы считаете, что вопрос не сформулирован правильно.

Я занимаюсь хобби-проектом знакомством с питоном и анализом данных с селеном. Я пытаюсь очистить страницу с моим вопросом, чтобы сначала заполнить реляционную базу данных, а затем заполнить мое резюме данными. У меня проблемы с записью данных в мою базу данных. Когда я использую extract_first () или get (), данные записываются в базу данных просто отлично. Но когда я использую extract () или getall (), я получаю сообщение об ошибке «операнд должен содержать 1 столбец (столбцы)». Что, я думаю, означает, что селекторный список, который является выходным, записывается в базу данных как разные строки вместо записи в одну и ту же строку в базе данных? Но я бы хотел, чтобы полный список селекторов был записан в тот же столбец и строку.

Я попытался преобразовать список выбора в строку (см. Код ниже), но это дает мне тот же вывод, что и список выбора.

jobs= sel.xpath('//*[starts-with(@class, "t-16 t-black t-bold")]/text()').getall()
jobs= [str(jobs[0]), str(''.join(jobs[1:]))]

Дает тот же вывод, что и

jobs= sel.xpath('//*[starts-with(@class, "t-16 t-black t-bold")]/text()').getall()

выход

['job1', 'job2']

Я бы хотел, чтобы вывод был в виде строки:

['job1, job2']

Так что я могу записать это в базу данных в один столбец (задания). Таким образом, идентификатор столбца имеет значение 1 (для человека 1), а задание столбца имеет значение «job1, job2» для идентификатора 1.

Возможно ли это? Большое спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Как бы вы хотели, чтобы выходные данные выглядели как string, вы можете передать выходные данные (то есть List ) в метод дляпреобразование выполняется следующим образом:

  • Кодовый блок:

    def convert_list_to_string(jobs):
        new = ""
        for item in jobs:
        new += item
        return new 
    
    def main():    
        jobs = sel.xpath('//*[starts-with(@class, "t-16 t-black t-bold")]/text()').getall()
        print(convert_list_to_string(jobs)) 
    
    main()
    
  • Консольный вывод:

    job1job2
    

Если вы хотите предварительно отобрать , символов, вы можете использовать следующее решение:

  • Блок кода:

    jobs = sel.xpath('//*[starts-with(@class, "t-16 t-black t-bold")]/text()').getall()
    print(','.join(jobs))
    
  • Консольный вывод:

    job1,job2
    
0 голосов
/ 30 апреля 2019

Пожалуйста, попробуйте следующий код. Надеюсь, это сработает. Он извлечет значение в список и затем объединит элементы списка.

jobs=[job.text for job in driver.find_elements_by_xpath('//*[starts-with(@class, "t-16 t-black t-bold")]')]
finaltext=','.join(jobs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...