gpt4 book ai didi

python - 写入 CSV 会导致每个字母都有自己的单元格

转载 作者:行者123 更新时间:2023-12-01 02:28:15 24 4
gpt4 key购买 nike

我有一些使用 BeautifulSoup 解析 HTML 的代码,并打印代码。 Here is the source code (如果有兴趣,请链接要点):

import csv
import requests
from bs4 import BeautifulSoup
import lxml

r = requests.post('https://opir.fiu.edu/instructor_evals/instr_eval_result.asp', data={'Term': '1175', 'Coll': 'CBADM'})
soup = BeautifulSoup(r.text, "lxml")

tables = soup.find_all('table')
print(tables)



print(tables)

导出到 CSV 之前我的代码输出如下所示:

 Question   No Response Excellent   Very Good     
Good Fair Poor
Description of course objectives and assignments
0.0% 76.1% 17.4% 6.5% 0.0%
0.0%
Communication of ideas and information 0.0%
78.3% 17.4% 4.3% 0.0% 0.0%

我真的很喜欢这个输出,并且想将其导出到 CSV,所以我添加了以下内容:

writer = csv.writer(open("C:\\Temp\\output_file.csv", 'w'))

for table in tables:
rows = table.find_all("tr")
for row in rows:
cells = row.find_all("td")
if len(cells) == 7: # this filters out rows with 'Term', 'Instructor Name' etc.
for cell in cells:
print(cell.text + "\t", end="")
writer.writerow(cell.text)
print("") # newline after each row
print("-------------") # table delimiter

不幸的是,此代码会导致每个唯一字符或字母都有自己的单元格:

error

所以我的问题是:如何修复此代码,以便它正确地将输出导出到 CSV 文件,而不为每个字符添加新单元格? 我不完全是确定它为什么这样做。它似乎也只导出第一个表,并忽略代码中的所有其他数据。

最佳答案

cell.text 是一个字符串,但 writerow 需要一个可迭代的数据,因此它可以将每个元素写入自己的单元格。由于您传递了一个列表,因此每个字符都被视为单独的元素并写入单独的单元格。

您必须在字符串周围包裹一个 [] 才能使其正常工作,因此您要传递一个字符串列表:

writer.writerow([cell.text])

关于python - 写入 CSV 会导致每个字母都有自己的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47138162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com