gpt4 book ai didi

python - 无法弄清楚我的条件有什么问题

转载 作者:太空宇宙 更新时间:2023-11-03 21:25:26 24 4
gpt4 key购买 nike

这是我正在运行的一个网络抓取代码,用于将我的所有大学模块移植到 csv 文件中,我无法理解为什么我的 if/else 语句不起作用,尝试了许多不同的解决方案,但仍然没有运气。也许我错过了什么?这是代码(条件位于底部):

from bs4 import BeautifulSoup, BeautifulStoneSoup
# import requests
import csv

with open('timetable.html', encoding='UTF-8', newline='') as html_file:
soup = BeautifulSoup(html_file, 'lxml')

csv_file = open('lol.csv', 'w', encoding='utf-8')
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['Subject', 'Start date', 'Start time', 'End time', 'Location'])

table = soup.find('table')

for modulis in table.find_all('td', class_='modclass'):
# randam modulį

# randam modulio pavadinimą

pav = modulis.find_all('a')[1]
name = pav['title']
print(name)

# modulio laiko pradžia

time1 = modulis.text[0:5]
print(time1)

# modulio laiko pabaiga

time2 = modulis.text[6:11]
print(time2)

# modulio vieta

aud = modulis.find('a').text[1:]
print(aud)

# modulio data

data = modulis.parent.find('td', class_='date').text
if data[0] == 0:
rand = '2019.' + data
else:
rand = '2018.' + data
# rašom csv
print(rand)
csv_writer.writerow([name, rand, time1, time2, aud])

它的计算结果永远不会为真,因此它总是进入 else 语句,并放入错误的年份。我所有的日期都以 2018.xx.xx 结尾,但这些以 0 开头的月份应该以 2019.xx.xx 开头

此外,数据始终采用 xx.xx 格式,因此 data[0] 始终选取第一个数字。

最佳答案

您将data设置为文本,然后将其计算为int。只需将其更改为“0”即可。

...
data = modulis.parent.find('td', class_='date').text
if data[0] == '0':
rand = '2019.' + data
else:
rand = '2018.' + data
...

关于python - 无法弄清楚我的条件有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53869986/

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