首页 > 解决方案 > python 一个变量包含列表。如何组合成一个列表

问题描述

我从网站上抓取数据,并使用一个变量来包含所有数据列表。

IE

x = [a,d,d,d] [a,f,f,f] [a,f,g,r]

如何将它们放入一个列表中,如下所示:

x = [[a,d,d,d],[a,f,f,f],[a,f,g,r]]

我使用的代码:

from urllib.request import urlopen
from bs4 import BeautifulSoup
import csv

url = "http://www.dicj.gov.mo/web/en/information/DadosEstat_mensal/2018/report_en.xml?id=5"
html = urlopen(url)
soup = BeautifulSoup(html, 'xml')

my_data = soup.find_all('RECORD')[0:]
for tds in my_data:
   x = [i.get_text() for i in tds.find_all('DATA')]
   print(x)

标签: pythonweb-scrapingbeautifulsouplxml

解决方案


因此,x每次for循环都有一个新的。您可以将每个附加x到列表中。

xs = []
for tds in my_data:
    x = [i.get_text() for i in tds.find_all('DATA')]
    print(x)
    xs.append(x)

或者您可以使用列表推导并在一行中完成所有操作。

xs = [[i.get_text() for i in tds.find_all('DATA')] for tds in my_data]

推荐阅读