在循环中合并Python数组?

2024-09-19 23:35:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在得到的是A,A,B,B的输出,而不是A,B,A,B

我真的想将每个表头的值与每个表数据元素相关联(就像字典一样)。你知道吗

import requests
from bs4 import BeautifulSoup

courseCode = "IFB104"
page = requests.get("https://www.qut.edu.au/study/unit?unitCode=" +     courseCode)

soup = BeautifulSoup(page.content, 'html.parser')
table = soup.find_all(class_='table assessment-item')

numOfTables = 0
tableDataArray = []

for tbl in table:
    numOfTables = numOfTables + 1 
    tableDataArray += [tbl.find_all('th'),tbl.find_all('td')]

Tags: 数据import元素字典pagetableallfind
1条回答
网友
1楼 · 发布于 2024-09-19 23:35:48

如果我理解正确,您需要使用dict,而不是list:

import requests
from bs4 import BeautifulSoup

courseCode = "IFB104"
page = requests.get("https://www.qut.edu.au/study/unit?unitCode=" + courseCode)

soup = BeautifulSoup(page.content, 'html.parser')
table = soup.find_all(class_='table assessment-item')

numOfTables = 0
tableFormatted1 = []
tableFormatted2 = {}

for tbl in table:
    numOfTables = numOfTables + 1
    keys = tbl.find_all('th')
    values = tbl.find_all('td')
    new_data = dict(zip(keys, values))

    # Method 1
    tableFormatted1.append(new_data)

    # Method 2
    for k, v in new_data.items():
        if k in tableFormatted2:
            tableFormatted2[k].append(v)
        else:
            tableFormatted2[k] = [v]

print('List of dictionaries')
print(tableFormatted1)
print('')

print('Dictionary with list')
print(tableFormatted2)

编辑时间:

tbl的每次迭代都会覆盖已经完成的迭代。因此,有必要改变结构。我刚刚提供了两种方法。你知道吗

相关问题 更多 >