python - 如何在 Python 中从 web 服务请求将文本转换为表格或 .csv
问题描述
我在python中导入了请求和Beautifulsoup4,并从Web服务请求xml。这就是我所做的:
import requests
from bs4 import BeautifulSoup as bs
session_request = requests.session()
response = session_requestion.post('',data='',headers='')
soup = bs(response.text,'lxml')
fruitresult = soup.find_all('getfruitbysql')
print(fruitresult)
然后,它显示:
[<getresultbysql>
<DataSet>
<Table>
<Fruit>Apple</Fruit>
<NumberOf>10</NumberOf>
<Price>12</Price>
</Table>
<Table>
<Fruit>Banana</Fruit>
<NumberOf>18</NumberOf>
<Price>10</Price>
</Table>
</DataSet>
</getresultbysql>]
如何将此结果转换为数据框或 .csv,如下所示:
--------------------------
| Fruit | Number | Price |
--------------------------
| Apple | 10 | 12 |
| Banana| 18 | 10 |
--------------------------
非常感谢!..
这是整个 xml 响应:
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<getresultbysqlResponse xmlns="http://tempuri.org/">
<getresultbysql>
<DataSet>
<Table>
<Fruit>Apple</Fruit>
<NumberOf>10</NumberOf>
<Price>12</Price>
</Table>
<Table>
<Fruit>Banana</Fruit>
<NumberOf>18</NumberOf>
<Price>10</Price>
</Table>
</DataSet>
</getresultbysql>
</getresultbysqlResponse>
</soap:Body>
</soap:Envelope>
解决方案
假设您已soup
准备好对象,您可以尝试使用lxml
来提取数据:
from lxml import etree
xml_text = soup.find('getresultbysql').text
root = etree.fromstring(xml_text)
data = [['Fruit', 'Number', 'Price']]
for table in root.findall('Table'):
data.append([i.text for i in table.getchildren()])
结果如下:
╔════════╦════════╦═══════╗
║ Fruit ║ Number ║ Price ║
╠════════╬════════╬═══════╣
║ Apple ║ 10 ║ 12 ║
║ Banana ║ 18 ║ 10 ║
╚════════╩════════╩═══════╝
推荐阅读
- sql - 如何基于自定义身份验证隐藏页面
- sql - Oracle 表类型
- apache - 尝试访问 Wordpress 安装上的图像时出现“403 禁止错误”
- spring - 创建名为“personRepository”的 bean 时出错:调用 init 方法失败;嵌套异常是 com.mongodb.util.JSONParseException:
- python - 是否有任何原因导致此代码在某些 Python 代码的开头不起作用?
- ios - RPScreenRecorder startCapture 不在后台录制
- vb.net - 在 Visual Studio 上更新数据库源的问题
- excel - 获取 Workbook.Open 以每天安排我的宏(不仅仅是一次)
- python - Python Eve Auth 无法返回 401 异常
- asp.net - 允许应用程序在没有用户名/密码的情况下访问受 Azure AD 保护的 URL