Python 从网站解析XML并保存代码?
我想从一个类似的网站解析xml代码 并将其保存在另一个xml或csv文件中 我试过这个:Python 从网站解析XML并保存代码?,python,xml,python-3.5,Python,Xml,Python 3.5,我想从一个类似的网站解析xml代码 并将其保存在另一个xml或csv文件中 我试过这个: import urllib.request web_data = urllib.request.urlopen("http://ops.epo.org/3.1/rest-services/published-data/publication/docdb/EP1000000/biblio") str_data = web_data.read() try: f = open("file.xml", "w
import urllib.request
web_data = urllib.request.urlopen("http://ops.epo.org/3.1/rest-services/published-data/publication/docdb/EP1000000/biblio")
str_data = web_data.read()
try:
f = open("file.xml", "w")
f.write(str(str_data))
print("SUCCESS")
except:
print("ERROR")
但在保存的XML中,数据位于每个元素“\n”和开头的“b”之间
在没有所有“n”和“b”的情况下,如何保存XML数据?read()
将数据返回为字节
,但您可以保存数据,而无需转换为str()
。您必须以byte
模式打开文件-“wb”
-并写入数据
import urllib.request
web_data = urllib.request.urlopen("http://ops.epo.org/3.1/rest-services/published-data/publication/docdb/EP1000000/biblio")
data = web_data.read()
try:
f = open("file.xml", "wb")
f.write(data)
print("SUCCESS")
except:
print("ERROR")
顺便说一下:要将字节
转换为字符串/unicode
,您必须使用ie.解码('utf-8')
。
如果您使用
str()
,那么Python使用自己的方法来创建字符串,并添加b“
若要通知您的数据中有字节
,
,如果您以二进制模式编写xml文件,则无需先将读取的数据转换为字符串。另外,如果您一次处理一行数据,应该可以解决'\n'
问题。您的代码的逻辑结构也可以稍微好一点,如下所示:
import urllib.request
web_data = urllib.request.urlopen("http://ops.epo.org/3.1/rest-services"
"/published-data/publication"
"/docdb/EP1000000/biblio")
data = web_data.read()
with open("file.xml", "wb") as f:
for line in data:
try:
f.write(data)
except Exception as exc:
print('ERROR')
print(str(exc))
break
else:
print('SUCCESS')
如果您的
stru数据实际上是一个字符串,您是否尝试过简单地替换您不想要的特定字符?在Python 3read()
中,您必须使用decode()
将其转换为字符串/unicode-您不能使用str()
。或者最好以'wb'
的形式打开文件,在不使用str()的情况下写入数据-f.write(str\u数据)