Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 您能在SQL中为一列写入选择器列表吗?_Python_String_List_Selenium_Join - Fatal编程技术网

Python 您能在SQL中为一列写入选择器列表吗?

Python 您能在SQL中为一列写入选择器列表吗?,python,string,list,selenium,join,Python,String,List,Selenium,Join,首先,我不是一名IT专业人士/学生,我只是在学习编程和数据,所以如果你认为这个问题没有很好地表达出来,我很抱歉 我正在做一个爱好项目,了解python和使用selenium处理数据。我正试图从我的linkedin页面开始,先填充一个关系数据库,然后用数据填充我的简历。我在将数据写入数据库时遇到问题。当我使用extract_first()或get()时,数据可以很好地写入数据库。但是,当我使用extract()或getall()时,会收到错误消息“操作数应包含1列”。我认为这意味着作为输出的选择器

首先,我不是一名IT专业人士/学生,我只是在学习编程和数据,所以如果你认为这个问题没有很好地表达出来,我很抱歉

我正在做一个爱好项目,了解python和使用selenium处理数据。我正试图从我的linkedin页面开始,先填充一个关系数据库,然后用数据填充我的简历。我在将数据写入数据库时遇到问题。当我使用extract_first()或get()时,数据可以很好地写入数据库。但是,当我使用extract()或getall()时,会收到错误消息“操作数应包含1列”。我认为这意味着作为输出的选择器列表将作为不同的行写入数据库,而不是写入数据库中的同一行?但我希望完整的选择器列表被写入同一列和同一行

我尝试将selectorlist转换为字符串(请参见下面的代码),但这会提供与selectorlist相同的输出

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']
因此,我可以将其写入数据库的一列(作业)。因此,列ID的值为1(对于人员1),列jobs的值为'job1,job2'对于ID 1


这可能吗?非常感谢。

请尝试以下代码。希望这能起作用。它会将值提取到列表中,然后加入列表项

jobs=[job.text for job in driver.find_elements_by_xpath('//*[starts-with(@class, "t-16 t-black t-bold")]')]
finaltext=','.join(jobs)

请尝试以下代码。希望这能起作用。它会将值提取到列表中,然后加入列表项

jobs=[job.text for job in driver.find_elements_by_xpath('//*[starts-with(@class, "t-16 t-black t-bold")]')]
finaltext=','.join(jobs)
由于您希望输出显示为
字符串
,因此可以将输出(列表)传递给方法进行转换,如下所示:

  • 代码块:

    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()
    
    jobs = sel.xpath('//*[starts-with(@class, "t-16 t-black t-bold")]/text()').getall()
    print(','.join(jobs))
    
  • 控制台输出:

    job1job2
    
    job1,job2
    
如果要保留
字符,可以使用以下解决方案:

  • 代码块:

    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()
    
    jobs = sel.xpath('//*[starts-with(@class, "t-16 t-black t-bold")]/text()').getall()
    print(','.join(jobs))
    
  • 控制台输出:

    job1job2
    
    job1,job2
    
当您希望输出成为
字符串时
可以将输出(列表)传递给一个方法进行转换,如下所示:

  • 代码块:

    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()
    
    jobs = sel.xpath('//*[starts-with(@class, "t-16 t-black t-bold")]/text()').getall()
    print(','.join(jobs))
    
  • 控制台输出:

    job1job2
    
    job1,job2
    
如果要保留
字符,可以使用以下解决方案:

  • 代码块:

    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()
    
    jobs = sel.xpath('//*[starts-with(@class, "t-16 t-black t-bold")]/text()').getall()
    print(','.join(jobs))
    
  • 控制台输出:

    job1job2
    
    job1,job2
    

我做到了!直到今天早上,我还没有足够的声誉来展示它。谢谢你的回答,效果很好!选择了第二个选项,但第一个选项确实帮助了我对问题的理解。好吧,进入编程的短语迫使我用最简单的方式构造答案。很高兴我能帮忙。太好了!我有点担心问这个问题,因为我的另一个问题在选民没有回答我的问题的情况下获得了几张反对票,所以我对我的问题不是很确定。但是你的回答帮助了我!是的!直到今天早上,我还没有足够的声誉来展示它。谢谢你的回答,效果很好!选择了第二个选项,但第一个选项确实帮助了我对问题的理解。好吧,进入编程的短语迫使我用最简单的方式构造答案。很高兴我能帮忙。太好了!我有点担心问这个问题,因为我的另一个问题在选民没有回答我的问题的情况下获得了几张反对票,所以我对我的问题不是很确定。但是你的回答帮助了我!