Python和Beautiful soup-获取值并将其保存在文本文件中
我有一个XML文件,它包含许多相关信息的记录,看起来像这样Python和Beautiful soup-获取值并将其保存在文本文件中,python,beautifulsoup,Python,Beautifulsoup,我有一个XML文件,它包含许多相关信息的记录,看起来像这样 <file> <record> <type>a</type> <number>2</number> </record> <record> <type>b</type> <number>9</number> </record> 第二次编辑: 如果在XML文件中添加第三条记录,则会出
<file>
<record>
<type>a</type>
<number>2</number>
</record>
<record>
<type>b</type>
<number>9</number>
</record>
第二次编辑:
如果在XML文件中添加第三条记录,则会出现以下错误
回溯(最近一次呼叫最后一次):
文件“multixmlsript.py”,第8行,在
对于类型1,在(soup.findAll('type')、soup.findAll('number'))中输入数字:
ValueError:要解压缩的值太多
from BeautifulSoup import BeautifulStoneSoup
soup = BeautifulStoneSoup(open('path/to/file'))
with open('/path/to/output.txt', 'w') as f:
for i in range(len(soup.findAll('type'))):
f.write ('%s\t%s\n' % (soup.findAll('type')[i].text, soup.findAll('number')[i].text))
您已经使用了
beautifulsou
它用于HTML。但是您需要为xml使用BeautifulStoneSoup
。我希望这将对您有所帮助。BeautifulSoup更适合HTML,而不是XML。至少安装lxml
并使用BeautifulSoup(file,parser='xml')
让BS正确调整行为。向我们展示实际抛出TypeError
的代码,或者至少完整的回溯。错误消息与您在此处看到的不匹配。谢谢。现在所有值都在输出中,但它将类型放在一行,将数字放在另一行。有没有办法按列存储它们?
from BeautifulSoup import BeautifulStoneSoup
soup = BeautifulStoneSoup(open('path/to/file'))
with open('/path/to/output.txt', 'w') as f:
for i in range(len(soup.findAll('type'))):
f.write ('%s\t%s\n' % (soup.findAll('type')[i].text, soup.findAll('number')[i].text))