我将一个XML文件发送到一个带有Python请求库的网站,并收到一堆XML代码(字节格式),如下所示:

b'<?xml version="1.0" encoding="UTF-8"?>\n<GetCategorySpecificsResponse xmlns="urn:ebay:apis:eBLBaseComponents"><Timestamp>2022-03-15T09:54:41.461Z</Timestamp><Ack>Success</Ack><Version>1219</Version><Build>E1219_CORE_APICATALOG_19146446_R1</Build><Recommendations><CategoryID>19006</CategoryID><NameRecommendation>.....

然而,我怎样才能让上面的xml以正确的格式和所有正确的缩进呢?我想将上面的字符串存储在另一个文件中,但对于当前的字符串,它只是一条永远向右侧移动的长线,对我来说没有什么用处...

下面是我的代码(r.content与上面的xml相同):

import requests

xml_file = XML_FILE

headers = {'Content-Type':'text/xml'}

with open(XML_FILE) as xml:
    r = requests.post(WEBSITE_URL, data=xml, headers=headers)

print(r.content)

new_file = open(ANOTHER_FILE)
new_file.write(str(r.content))
new_file.close()


我想存储在新_文件中的xml示例:

<?xml version="1.0" encoding="UTF-8"?>
<GetCategorySpecificsResponse
  xmlns="urn:ebay:apis:eBLBaseComponents">
  <Timestamp>2022-03-15T08:30:01.877Z</Timestamp>
  <Ack>Success</Ack>
  <Version>1219</Version>
  <Build>E1219_CORE_APICATALOG_19146446_R1</Build>
  <Recommendations>
    <CategoryID>19006</CategoryID>
.....
</GetCategorySpecificsResponse>

非常感谢.

推荐答案

一种方法是将响应传递给解析器并保存到文件.例如,这样的方法应该有效:

from bs4 import BeautifulSoup as bs
soup= bs(r.text,"lxml")
with open("file.xml", "w", encoding='utf-8') as file:
    file.write(str(soup.prettify()))

Python相关问答推荐

如何根据日期和时间将状态更新为已过期或活动?

三个给定的坐标可以是矩形的点吗

在Python中对分层父/子列表进行排序

比较2 PD.数组的令人惊讶的结果

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

Python虚拟环境的轻量级使用

我们可以为Flask模型中的id字段主键设置默认uuid吗

从一个系列创建一个Dataframe,特别是如何重命名其中的列(例如:使用NAs/NaN)

关于Python异步编程的问题和使用await/await def关键字

Pandas—在数据透视表中占总数的百分比

如何使Matplotlib标题以图形为中心,而图例框则以图形为中心

无法连接到Keycloat服务器

名为__main__. py的Python模块在导入时不运行'

以逻辑方式获取自己的pyproject.toml依赖项

在方法中设置属性值时,如何处理语句不可达[Unreacable]";的问题?

python sklearn ValueError:使用序列设置数组元素

用SymPy在Python中求解指数函数

如何从比较函数生成ngroup?

如何在PythonPandas 中对同一个浮动列进行逐行划分?

Django在一个不是ForeignKey的字段上加入'