在Python中使用逗号刮取数据

在Python中使用逗号刮取数据,python,Python,我正在使用Python和请求和lxml创建一个表。表中的数据使用tree.xpath找到,并添加到写入CSV文件的列表中。不幸的是,表的一列中的行包含逗号,这会改变列表中的值的数量 例如: from lxml import html import requests page = requests.get('http://url.com/table') tree = html.fromstring(page.content) list1 = tree.xpath('//*[@id=block]

我正在使用Python和请求和lxml创建一个表。表中的数据使用tree.xpath找到,并添加到写入CSV文件的列表中。不幸的是,表的一列中的行包含逗号,这会改变列表中的值的数量

例如:

from lxml import html
import requests

page = requests.get('http://url.com/table')
tree = html.fromstring(page.content)

list1 = tree.xpath('//*[@id=block]/div/tr[*]/td[1]/a/text()')
list2 = tree.xpath('//*[@id=block]/div/tr[*]/td[2]/a/text()')
我正在刮的桌子:

Column1 | Column2
A,B,C     X
D,E       Y
F,G,H     Z
电流输出:

print list1
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']

print list2
['X', 'Y', 'Z']
首选输出:

print list1
['a b c', 'd e', 'f g h']

print list2
['x', 'y', 'z']
我找不到合适的解决办法。在列表中使用不同的分隔符时,是否有一种简单的方法可以从值中删除逗号或保留逗号?谢谢你的帮助

编辑:这是CSV编写器

csv_out = open('file.csv', 'wb')
writer = csv.writer(csv_out, dialect = 'excel-tab')
writer.writerows(list, list2, etc)
csv_out.close()

您应该使用
csv
模块来编写文件。您可以选择分隔符(如|),也可以使用引号来处理逗号


如果您还有其他问题,请告诉我

更改分隔符将如何更改字符串?csv模块编写器中的默认方言(excel)将默认引用,因此对于引用情况,不需要配置任何内容。最好完全从字符串中删除逗号。没有他们我可以活下去。不拘泥于语法。在尝试编写原始数据之前,请先显示原始数据的外观。上面的示例表现在更准确地反映了我正在刮取的原始数据。如果您正确使用csv模块,它将引用。因此,在不了解您编写的内容和方式的情况下,不可能推荐任何内容,并且不使用xpath表达式给你一个每行两个元素的列表?如果是这样的话,你可以写下这些东西,它会被你引用。