CSV输出到一个单元格

时间:2014-10-16 19:12:50

标签: python csv beautifulsoup

很抱歉,如果我的代码很糟糕,我刚开始学习Python。

我正在从HTML文件中抓取数据并尝试写入CSV。

问题是它正在将所有内容写入一个单元格。

for table in soup.find_all('table', class_='players-table'):
    for headers in soup.find_all('thead'):
        for y in headers.findAll('th'):
              [csvHeader.append(i) for i in y if y.getText() != '']


counter = 0

myfile = open('/Users/andrew/Documents/Projects/Football Data/ppi.csv', 'wb')
wr = csv.writer(myfile, delimiter=',',  lineterminator='\n', quoting=csv.QUOTE_MINIMAL)
c = csv.writer(myfile)
c.writerow(csvHeader)



for table in soup.find_all('table', class_='players-table'):
    for headers in soup.find_all('tbody'):
        for rows in headers.findAll('tr'):
            for x in rows.findAll('td'):
                if x.getText() !='':
                    csvRows_temp.append(x.getText().replace('\n                            ','').replace('\n                        ',''))
                    counter +=1
                if counter == 13:
                    myList = [','.join(csvRows_temp).encode('utf8').strip()]
                    csvRows_temp.append('\n')
                    c.writerow(myList)
                    csvRows_temp[:] = []
                    myList[:] = []
                    counter = 0

输出是这样的: enter image description here

如何将其写入每个单元格而不是将其传递到每一行的单个单元格?

1 个答案:

答案 0 :(得分:1)

这一行:

myList = [','.join(csvRows_temp).encode('utf8').strip()]

创建一个只包含一个元素的列表,一个包含多个逗号的字符串。

尝试:

myList = csvRows_temp

或者,如果您认为需要文本处理:

myList = [x.encode('utf8').strip() for x in csvRows_temp]