Python Writerow不会将某些变量打印到csv文件中

Python Writerow不会将某些变量打印到csv文件中,python,csv,Python,Csv,以下代码无法将名称和地址变量写入csv文件。当我使用数字、单词或“write”变量进行测试时,这些变量将记录在csv中,但“Writeaddress”和“WriteName”不会*(同样,使用这些变量的原始源也会留下空白) *(我可以执行“writerows”([3,Write,Writename]),CSV行将为“3,0”)我无法重现您的错误,但您获得的数据中嵌入了换行符和空格,这会使CSV看起来很奇怪。在编写csv之前,我已经清理了脚本并清理了数据,最后得到了station、address条

以下代码无法将名称和地址变量写入csv文件。当我使用数字、单词或“write”变量进行测试时,这些变量将记录在csv中,但“Writeaddress”和“WriteName”不会*(同样,使用这些变量的原始源也会留下空白)


*(我可以执行“writerows”([3,Write,Writename]),CSV行将为“3,0”)

我无法重现您的错误,但您获得的数据中嵌入了换行符和空格,这会使CSV看起来很奇怪。在编写csv之前,我已经清理了脚本并清理了数据,最后得到了station、address条目。我认为没有必要编写
write
,因为它在您的脚本中始终为0,在我的脚本中甚至不存在,因为我使用了异常处理

import requests, sys, pyperclip, bs4, csv

with open('CTA Station Addresses.csv', 'w', newline='') as StationList:
    StationWrite = csv.writer(StationList)
    for i in range(149):
        _id = str(i)
        res = requests.get('http://www.transitchicago.com/travel_information/station.aspx?StopId=' + _id)
        res.raise_for_status()
        Station = bs4.BeautifulSoup(res.text, 'lxml')
        try:
            name = Station.select('.rtehdng')[0].getText().strip()
            address = Station.select('#ctl07_divAddress')[0].getText().splitlines()[-1].strip()
        except IndexError as e:
            print("No data for station", _id)
            continue
        if not name or not address:
            print('Empty elements for station', _id)
            continue
        print(repr(name), repr(address))
        StationWrite.writerow([name, address])

我看到你有一个已注释的打印声明和另一个未注释的声明;这些打印的是什么?是的,请显示调试跟踪的输出!我在运行代码时做了一些调整,比如从url中删除空格,它确实得到了
WriteName
WriteAddress
的值。它们包含新行,因此csv看起来有点奇怪,但它们确实存在。我无法重现这个问题。您运行了此脚本?@zondo Print Address.gettext和printname.get text用于显示此脚本下载正确(我以前没有做过网页抓取,所以这是一个学习项目),这些脚本打印站点的名称和地址。我可以检查它们是否已下载。@tdelaney:这些值肯定存在(请参阅对zondo的回复,这一部分没有引起问题)问题是,当我试图编写csv时,csv结果是空白的。我将尝试下一个建议,看看它是如何运行的。
import requests, sys, pyperclip, bs4, csv

with open('CTA Station Addresses.csv', 'w', newline='') as StationList:
    StationWrite = csv.writer(StationList)
    for i in range(149):
        _id = str(i)
        res = requests.get('http://www.transitchicago.com/travel_information/station.aspx?StopId=' + _id)
        res.raise_for_status()
        Station = bs4.BeautifulSoup(res.text, 'lxml')
        try:
            name = Station.select('.rtehdng')[0].getText().strip()
            address = Station.select('#ctl07_divAddress')[0].getText().splitlines()[-1].strip()
        except IndexError as e:
            print("No data for station", _id)
            continue
        if not name or not address:
            print('Empty elements for station', _id)
            continue
        print(repr(name), repr(address))
        StationWrite.writerow([name, address])