将XML转换为python字典



我正在向API发送请求:

import requests as rq
resp_tf = rq.get("https://api.t....")
tf_text = resp_tf.text

打印:

<?xml version="1.0" encoding="UTF-8"?>
<flowSegmentData version="traffic-service 4.0.011">
<frc>FRC0</frc>
<currentSpeed>78</currentSpeed>
<freeFlowSpeed>78</freeFlowSpeed>
<currentTravelTime>19</currentTravelTime>
<freeFlowTravelTime>19</freeFlowTravelTime>
<confidence>0.980000</confidence>
<roadClosure>false</roadClosure>
<coordinates>
<coordinate>
.....

现在我如何获得标签的值,例如";currentSpeed";

这可以使用BeautifulSoup模块来完成。

代码不言自明:

  • 使用find_all()方法按标签名称搜索标签
  • 创建一个字典,其中key是找到的标签的名称,value是标签的文本

from bs4 import BeautifulSoup
xml = """<?xml version="1.0" encoding="UTF-8"?>
<flowSegmentData version="traffic-service 4.0.011">
<frc>FRC0</frc>
<currentSpeed>78</currentSpeed>
<freeFlowSpeed>78</freeFlowSpeed>
<currentTravelTime>19</currentTravelTime>
<freeFlowTravelTime>19</freeFlowTravelTime>
<confidence>0.980000</confidence>
<roadClosure>false</roadClosure>
<coordinates>
<coordinate>"""
soup = BeautifulSoup(xml, "html.parser")
print({tag.name: tag.text for tag in soup.find_all("currentspeed")})

输出:

{'currentspeed': '78'}

最新更新