合并xpath生成的列表、Python、lxml

合并xpath生成的列表、Python、lxml,python,xml,list,xpath,lxml,Python,Xml,List,Xpath,Lxml,我目前正在抓取一个xml文件以获取一些数据,我需要帮助将3个列表与3个xpath调用生成的值合并在一起: 代码: 我感兴趣的数据包括: >>> tree.xpath("/rss/channel/item/title/text()") ['Klistermärkesuppsättning i Trollhättan', 'Dror Feiler vill inte betala sina böter – spelar judekortet', 'Gruppvåldtäkt: M

我目前正在抓取一个xml文件以获取一些数据,我需要帮助将3个列表与3个xpath调用生成的值合并在一起: 代码:

我感兴趣的数据包括:

>>> tree.xpath("/rss/channel/item/title/text()")
['Klistermärkesuppsättning i Trollhättan', 'Dror Feiler vill inte betala sina böter – spelar judekortet', 'Gruppvåldtäkt: Media döljer att afrikaner är gärningsmän — kallar dem ”svenskar”', 'Nordfronts läsare: Gyllene grynings valresultat var en framgång', 'Karikatyrtävling över ”förintelsen” i Iran', 'Nytt födelseformulär: Är mamman som fött barn kvinna eller man?', 'Kampsportsträning i Stockholm', 'Nytt projekt för nationella kvinnor!', 'Svenskt företag opererar in mikrochip i anställda', 'Utbildning i Göteborg']
>>> tree.xpath("/rss/channel/item/link/text()")
['https://www.nordfront.se/klistermarkesuppsattning-trollhattan.smr', 'https://www.nordfront.se/dror-feiler-vill-inte-betala-sina-boter-spelar-judekortet.smr', 'https://www.nordfront.se/gruppvaldtakt-svenskar-sager-media-afrikaner-sager-vittnen.smr', 'https://www.nordfront.se/veckans-fraga-var-gyllene-grynings-valresultat-en-framgang.smr', 'https://www.nordfront.se/karikatyrtavling-forintelsen-iran.smr', 'https://www.nordfront.se/nytt-fodelseformular-ar-mamman-som-fott-barn-kvinna-eller-man.smr', 'https://www.nordfront.se/kampsportstraning-stockholm-15.smr', 'https://www.nordfront.se/nytt-projekt-nationella-kvinnor.smr', 'https://www.nordfront.se/svenskt-foretag-opererar-in-mikrochip-i-anstallda.smr', 'https://www.nordfront.se/utbildning-goteborg.smr']
>>> tree.xpath("/rss/channel/item/pubDate/text()")
['Mon, 02 Feb 2015 14:00:37 +0000', 'Mon, 02 Feb 2015 13:25:07 +0000', 'Mon, 02 Feb 2015 12:45:27 +0000', 'Mon, 02 Feb 2015 09:30:38 +0000', 'Sun, 01 Feb 2015 21:15:11 +0000', 'Sun, 01 Feb 2015 19:40:12 +0000', 'Sun, 01 Feb 2015 19:30:13 +0000', 'Sun, 01 Feb 2015 19:00:31 +0000', 'Sun, 01 Feb 2015 15:30:08 +0000', 'Sun, 01 Feb 2015 15:00:20 +0000']
现在是构建数据的时候了,这样我就可以将数据放入数据库中,xml文件中的每一项都将代表数据库中的一列。我的问题是,我目前将每个项目的信息分为3个不同的列表

我希望您能帮助我以一种良好的方式将这些列表合并在一起,例如:

Items Object => "item[0]" => "title" => "Title 1 text ..." "link" => "http://www...." "pubDate" => "Mon, 02 Feb 2015 14:00:37" "item[1]" => "title" => "Title 2 text ..." "link" => "http://www...." "pubDate" => "Mon, 02 Feb 2015 14:00:38"   ..
如果有人能演示我将如何做到这一点,我将非常高兴。

如果使用Python 3.x元组,您将得到一个列表或迭代器:

records = zip(
    tree.xpath("/rss/channel/item/title/text()"),
    tree.xpath("/rss/channel/item/link/text()"),
    tree.xpath("/rss/channel/item/pubDate/text()")
)

# records => [
#    ('Klistermärkesuppsättning i Trollhättan',
#     'https://www.nordfront.se/klistermarkesuppsattning-trollhattan.smr',
#     'Mon, 02 Feb 2015 14:00:37 +0000'),
#    ('Dror Feiler vill inte betala sina böter – spelar judekortet',
#     'https://www.nordfront.se/dror-feiler-vill-inte-betala-sina-boter-spelar-judekortet.smr',
#     'Mon, 02 Feb 2015 12:45:27 +0000'),
#    ....
# ]

感谢falsetru,这看起来非常灵活,但是我想知道是否有任何方法可以命名每个值title、link、pubDate,这样我就知道要在哪个列中插入哪个值,也许您可以使用[0]、[1]和[2]?@Toothfairy、[{'title':title、'link':link、'pubDate':pubDate}在zip中检索title、link、pubDate…]类似这样的内容将为您提供字典列表?@Toothfairy,或:[{'title':item.find'title.text,'link':item.find'link.text,'pubdate':item.find'pubdate.text}用于树中的item.xpath/rss/channel/item]
records = zip(
    tree.xpath("/rss/channel/item/title/text()"),
    tree.xpath("/rss/channel/item/link/text()"),
    tree.xpath("/rss/channel/item/pubDate/text()")
)

# records => [
#    ('Klistermärkesuppsättning i Trollhättan',
#     'https://www.nordfront.se/klistermarkesuppsattning-trollhattan.smr',
#     'Mon, 02 Feb 2015 14:00:37 +0000'),
#    ('Dror Feiler vill inte betala sina böter – spelar judekortet',
#     'https://www.nordfront.se/dror-feiler-vill-inte-betala-sina-boter-spelar-judekortet.smr',
#     'Mon, 02 Feb 2015 12:45:27 +0000'),
#    ....
# ]