如图,如何基于Python,指定特定的序号index,得到对应的4个坐标值,返回用字典即可
2条回答 默认 最新
- 「已注销」 2022-04-29 16:02关注
from bs4 import BeautifulSoup import json # 测试 xml_file = """ <segementation_result> <frame index="1" rejected="false"> <point name="bl" x="123" y="467"/> <point name="tl" x="234" y="768"/> <point name="tr" x="234" y="77"/> <point name="br" x="724" y="775"/> </frame> <frame index="2" rejected="false"> <point name="bl" x="13" y="987"/> <point name="tl" x="33" y="578"/> <point name="tr" x="345" y="653"/> <point name="br" x="675" y="564"/> </frame> </segementation_result> """ # 定义函数 frame_index_value 的index值, xml_file def get_frame_point(frame_index_value: int, xml_file: str) -> dict: # 解析xml soup = BeautifulSoup(xml_file, "xml") # 定义字典 frame_points = {} for items in soup.find_all('frame'): # frame 对应的index当key frame_points[items.get("index")] = [] for item in items.find_all('point'): # 定义point字典 point = {} # point 对应的name当key, 值为列表, 存储, (x,y) point[item.get("name")] = (item.get("x"), item.get("y")) # 写入点值 frame_points[items.get("index")].append(point) # 返回 frame_index_value 对应的点 return frame_points.get(str(frame_index_value)) if __name__ == "__main__": print(get_frame_point(1, xml_file))
[{'bl': ('123', '467')}, {'tl': ('234', '768')}, {'tr': ('234', '77')}, {'br': ('724', '775')}]
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 网络科学导论,网络控制
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)