Python,编码为 csv。烦恼

Python, code to csv. Troubles

首先想说的是,我已经在论坛上研究了大约 2 天,但没有找到适合我的东西。 好吧,我们开始吧。我正在删除一个网站,我只需要按顺序设置 python 代码的输出。

这是我在 运行 之后得到的:

1 
Kidderminster Harr
1183
283
138
170
1005
731
""
208
148
236
813
877
""
+210
1727
.536

在单列中..

这就是我想要的:我想要这样的 csv

1, Kidderminster Harr, 1183, 283, 138, 170, 1005, 731, "", 208, 148, 236,etc...

前段时间,我记得在每个元素中添加 +',' 就可以了......现在我不知道为什么不再起作用了..

这是我目前拥有的:

import requests
from bs4 import BeautifulSoup

req = requests.get('http://www.statto.com/football/stats/england/national-league/all-time-table', headers={'User-Agent':'a-user-agent'})
soup = BeautifulSoup(req.text)
summary = soup.find("div",{"id" : "page-content"})
tables = summary.find('table')
count = 0
for row in tables.findAll('tr'):
    for cell in row.findAll('td'):
        data = cell.getText()
        if (count < 18):
            data = data + ';'
            print data
        count += 1
        if (count==19):
            print data
        count = 0

如有任何想法,我们将不胜感激。

如果我没理解错的话,你想在空格处分割,然后用逗号连接:

>>> string =  "1 Kidderminster Harr 1183 283 138 170 1005 731 "" 208 148 236 813 877 "" +210 1727 .536"
>>> ", ".join(string.split())
'1, Kidderminster, Harr, 1183, 283, 138, 170, 1005, 731, 208, 148, 236, 813, 877, +210, 1727, .536'

split 方法将字符串按其空格拆分为列表,然后 join 创建一个字符串,每个列表成员由 ", " 分隔。

编辑:您的问题有所改变,但如果您可以将列的每个部分附加到列表中,则调用 join

print data

打印数据和一个换行符。

print data,

禁止换行。 有帮助吗?

我想你想要:

if (count < 18):
    data = data + ","
    print data,
    count += 1
elif (count==19):
    print data
    count = 0

有更多 pythonic 方法可以做到这一点,但我认为这就是你问题的答案。

查看您的代码,您首先需要像这样初始化一个结果字符串:

result = ""

在第二个 for 循环之前执行此操作。然后你需要在打印数据变量的两个地方添加到那个循环

result = result + data + ", "

result = result + data

然后紧接着第二行

print result

你应该得到你需要的。