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

时间:2014-07-03 08:52:56

标签: python csv

我正在抓一个网站获取一些信息,我一直把它写到.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 个答案:

答案 0 :(得分:2)

csv.writerow(iterable)需要一个可迭代的元素将用系统(或默认)分隔符分隔。

python中的字符串对象也是可迭代的,字符串的字符是iterable的元素,因此当您将此方法与单独的字符串一起使用时,其字符将被分开。

要避免此行为,您可以使用包含字符串的列表或元组。

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