{"checksum_0":"0xF9","checksum_1":"0x63","class":"0x90","id":"0x01","payload":{"raw_data":"<MessageFrame><rsmFrame><msgCnt>56</msgCnt><id>3030303030323837</id><refPos><lat>305使用python写代码读取文件中的每一行,从中截取<id>字段并存入数组,比较数组里面是否存在相同id,如果id相同只保留一个,并将id进行HEX转换ASCLL,转换完成后打印出来
时间: 2023-07-06 14:30:56 浏览: 70
如何计算IP报头的checksum
可以使用 Python 的文件操作和正则表达式来实现该功能。以下是一个示例代码:
```python
import re
id_list = []
with open('file.txt', 'r') as f:
for line in f:
id_match = re.search(r'<id>(.*?)</id>', line)
if id_match:
id_hex = id_match.group(1).encode('utf-8').hex()
if id_hex not in id_list:
id_list.append(id_hex)
print(id_hex)
```
这个代码示例中,我们首先定义了一个空的数组 `id_list`,用于存储截取出来的 id。然后,使用 `with open` 语句打开文件并逐行读取文件内容。在每一行中,使用正则表达式 `re.search` 匹配 `<id>` 标签中的内容,并将其转换为 HEX 格式的 ASCII 码。如果该 id 在 `id_list` 中不存在,则将其添加到数组中,并输出转换后的结果。
需要注意的是,该代码示例假设每行只有一个 `<id>` 标签,并且标签的内容不包含其他的 `<` 或 `>` 字符。如果实际情况比较复杂,需要根据具体情况修改正则表达式。
阅读全文