【发布时间】:2021-10-24 14:38:52
【问题描述】:
我需要编写一个python 脚本(我是python 的新手,但想练习一下)来解析以下格式的消息:
T:L:x1:x2:x3:...T1:L1:y1:y2:y3...Tn:Ln:z1:z2:z3:...
其中T 保存一个类型,L 是长度,x1..xn 是 T1-Tn 类型的实际数据。每个字符用: 符号分隔,所有值始终以十六进制表示。
例如:
1:4:a:5:6:7:2:10:72:75:63:6f:6e:74:72:6f:6c:6c:65:72:2e:6f:72:67
(Type1=1, Length1=4, Type2=2, Length2=16 (10 in hex))
解析后的消息应该存储在字典中(我认为这是最合适的数据结构,但我很高兴听到一些其他建议)。
所以我可能会拆分文本,提取类型和长度,进一步提取L 字节并将它们存储在dict 中,T 作为键。
- 所以我会运行一个循环,我如何确定字符串的结尾,以便我可以跳出循环?
- 实际数据(例如 x1-x3...)必须存储在字典中,并删除
:。我不知道该怎么做。
我很高兴了解更有效的字符串解析方法。谢谢!
【问题讨论】:
-
请举例说明您要解析的确切语法,而不是模板
-
@anon01,我更新了我的问题。
-
你试过使用
split字符串方法吗? -
我以前怎么没想到...我更新了我的答案。请检查一下好吗?
-
@Corralien,是的,它按预期工作。谢谢。