Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python和Beautiful soup-获取值并将其保存在文本文件中_Python_Beautifulsoup - Fatal编程技术网

Python和Beautiful soup-获取值并将其保存在文本文件中

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文件中添加第三条记录,则会出

我有一个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))