首页 > 解决方案 > 输出时有多个结果

问题描述

我知道这是一个简单的问题,但我不知道我哪里出错了,当我将漂亮的汤输出到 csv 时,我得到了 8 次输出,这也是 HTML 查找的结果数 - 我在哪里乘以我的输出的结果数?pack3_value 的输出只是我需要一次的数​​据

pack3_rows = [] 
for row in pack_rows3:
    cells = row.findChildren('td')
    pack3_row = [] # - for output
    for cell in cells:
        pack3_value = cell.string
        pack3_row.append(cell.text)
        pack3_rows.append(pack3_row)
        print (pack3_value)

with open('output.csv', 'w') as csvfile: 
    writer = csv.writer(csvfile)
    writer.writerows(pack3_rows)

标签: pythonpython-3.x

解决方案


您应该每行只追加pack3_rows一次,而不是每个单元格。

pack3_rows = [] 
for row in pack_rows3:
    cells = row.findChildren('td')
    pack3_row = [] # - for output
    for cell in cells:
        pack3_value = cell.string
        pack3_row.append(cell.text)
        print (pack3_value)
    pack3_rows.append(pack3_row)

如果print仅用于调试,而不是实际应用程序所需要的,则可以使用列表推导。

pack3_rows = [] 
for row in pack_rows3:
    cells = row.findChildren('td')
    pack3_rows.append([cell.text for cell in cells])

推荐阅读