[英]Write output to csv from nested loop?
我在一个较大的循环中有几个循环,我需要将 csv 文件写入两次:
更新,更详细的例子
with open("file.csv", "w", encoding="utf-8", newline="") as file:
writer = csv.writer(file)
while True:
try:
element = driver.find_element_by_xpath(xpath)
if element.is_displayed():
nextbtn=driver.find_element_by_xpath(xpath).click()
object=driver.find_element_by_xpath(xpath)
writer.writerows(object)
except NoSuchElementException:
urls=driver.find_elements_by_xpath(xpath)
urls= [url.get_attribute('href') for url in urls]
for url in urls:
driver.get(url)
object = driver.find_element_by_xpath(xpath)
writer.writerows(object)
本质上,代码所做的是测试以检查元素是否存在。 如果元素存在,则单击下一个按钮。 单击下一个按钮后,将抓取特定元素object
并将其写入 csv。
如果某个元素不存在,则代码会收集一个 url 列表,并且对于每个 url,它会抓取元素object
并将其打印到 csv。
无论导航到哪个页面,我都想要 object 元素。 但是,问题在于写入 csv,因为try
的结果没有写入 csv。 虽然object
的位置对于两个页面是相同的,但object
的值是不同的,具体取决于页面。
我将如何重写此代码以使两个结果都写在相同的 csv 中?
对于遇到相同问题的其他任何人,问题不是写入到.csv 的语法。 要在嵌套循环中写入 a.csv,我在上面发布的语法是正确的。
在这种情况下,问题是没有找到我试图在try
循环中找到的元素object
,因此写入了空行,而在except
循环中找到了 object。 我在try
将单元格“找不到元素”写入 csv 时使用了 if/else 语句。 或者,您可以将其留空。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.