CSV 中每个字符之间的逗号

roc*_*mer 2 python csv python-3.x

我试图将我的列表直接保存到 csv 文件,但是当我打开 csv 文件时,它的每个字符之间都显示有逗号。

我试图保存的列表是 ['BUD', 'ABBV', 'MO', 'WEED.TO', 'TAP', 'CGC', 'ACB']。

def cannabisTickers():
    if __name__ == '__main__':
        resp = requests.get('https://finance.yahoo.com/u/yahoo-finance/watchlists/420_stocks/',
                            headers={
                                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0'
                            })
        assert '<table class="cwl-symbols' in resp.text
        soup = BeautifulSoup(resp.text, 'html.parser')
        table = soup.select_one('.cwl-symbols')
        tickers = []
        for row in table.select('tr'):
            ticker = [cell.text for cell in row.select('td')]
            if ticker:
                tickers.append(ticker[0])
    with open('cannabisTickers', 'w') as csvFile:
        writer = csv.writer(csvFile)
        writer.writerows(tickers)
    csvFile.close()
    print(tickers)
Run Code Online (Sandbox Code Playgroud)

csv 显示为

B,U,D
A,B,B,V
M,O
Run Code Online (Sandbox Code Playgroud)

Dev*_*ngh 5

由于tickers是一个字符串列表,因此每个字符串都被视为字符列表,并在执行时保存在 csv 中writer.writerows(tickers),所以BUD变成['B,'U','D']等等

这导致['BUD', 'ABBV', 'MO', 'WEED.TO', 'TAP', 'CGC', 'ACB']成为[['B', 'U', 'D'], ['A', 'B', 'B', 'V'], ['M', 'O'], ['W', 'E', 'E', 'D', '.', 'T', 'O'], ['T', 'A', 'P'], ['C', 'G', 'C'], ['A', 'C', 'B']]这样并被拯救。

因此,您想要传递writer.writerows列表的列表,或将该列表传递给writer.writerow

所以假设tickers = ['BUD', 'ABBV', 'MO', 'WEED.TO', 'TAP', 'CGC', 'ACB'], 而不是

writer.writerows(tickers)
Run Code Online (Sandbox Code Playgroud)

你想做

writer.writerows([tickers])
Run Code Online (Sandbox Code Playgroud)

或者

writer.writerow(tickers)
Run Code Online (Sandbox Code Playgroud)

csv 看起来像

BUD,ABBV,MO,WEED.TO,TAP,CGC,ACB
Run Code Online (Sandbox Code Playgroud)