输出中的每个字母之间的.csv分隔符

2 投票
1 回答
1291 浏览
提问于 2025-04-18 11:58

我正在抓取一个网站的信息,并把这些信息写入一个.csv文件;但是每次我运行这个脚本:

import requests
from bs4 import BeautifulSoup
import csv
import time

site = "url"

with open('receipts_10.csv', 'rU') as csvfile:
    reader = csv.reader(csvfile, delimiter=';')
    outfile = 'test.csv'
    ofile = open(outfile,"wb")
    writer = csv.writer(ofile,delimiter=";")
    for row in reader:

        response = requests.post(site, params={'appReceiptNum':row})
        soup = BeautifulSoup(response.text)
        caseStatus = soup.find("h4")
        for string in caseStatus.stripped_strings:
            writer.writerow(string)

我在我的csv文件中得到的输出是:

I;n;i;t;i;a;l; ;R;e;v;i;e;w
D;e;c;i;s;i;o;n

有没有什么想法?

1 个回答

2

csv.writerow(iterable) 这个方法需要一个可迭代的对象,也就是说,它的元素会用系统默认的分隔符来分开。

在Python中,字符串也是一个可迭代的对象,字符串里的每个字符都是这个可迭代对象的元素。所以,当你用这个方法处理一个单独的字符串时,它会把字符串里的字符分开。

如果你不想要这种效果,可以用一个列表或元组来包含你的字符串。

    for string in caseStatus.stripped_strings:
            newString = string.replace(" ", "")
            writer.writerow([newString])

撰写回答