如何将已解析的xml保存为txt?

时间:2019-05-14 11:08:27

标签: python urllib

我已解析XML列出,我想将其另存为txt文件。

但是有一个错误。

如何将其保存到txt ..?

我是python的入门者,所以我不知道该怎么做。

我的xml网址是https://pvxml.map.naver.com/api/get?type=xml&pano_id=/c7VUP7/zsr2UT/De2VlQA==&rv=3

我想解析street_panorama ID。

import os
import urllib.request as urllib from xml.dom
import minidom
with open ('list.txt','w') as f:
    f.write('C:/Users/JYLEE/Desktop/python/exercise')
    url = 'https://pvxml.map.naver.com/api/get?type=xml&pano_id=/c7VUP7/zsr2UT/De2VlQA==&rv=3' 
    dom = minidom.parse(urllib.urlopen(url))
    link = dom.getElementsByTagName('street_panorama')
    categories = [items.attributes['id'].value for items in link if items.attributes['id']]
    f.write(categories)

错误消息为TypeError: write() argument must be str, not list

我不知道下一步该怎么做...

2 个答案:

答案 0 :(得分:0)

如消息所示,它需要传递一个字符串。您可以简单地执行write(str(categories))来获得类似于['a', 'b', 'c'][1, 2, 3]的表示形式。如果您希望每行都换行或采用某种特定格式,请循环categories并逐项写入文件。

答案 1 :(得分:0)

您可以使用categories方法将列表(str())转换为字符串格式。

此外,每当尝试withread文件时,都尝试使用write语句。如果您几乎不使用readwrite命令,则在使用f.close()命令后应关闭文件。

如果您使用with命令,这会自动进行。

这是您的更正代码,供您参考

import os
import urllib.request as urllib 
from xml.dom import minidom
with open("list1.txt",'w') as f:
    f.write('C:/Users/JYLEE/Desktop/python/exercise')

url = 'https://pvxml.map.naver.com/api/get?type=xml&pano_id=/c7VUP7/zsr2UT/De2VlQA==&rv=3' 
dom = minidom.parse(urllib.urlopen(url))
link = dom.getElementsByTagName('street_panorama')
categories = [items.attributes['id'].value for items in link if items.attributes['id']]
with open("list1.txt",'w') as f:
    f.write(str(categories))