【发布时间】:2019-12-19 00:54:11
【问题描述】:
有了这个link给出的文字,需要提取数据如下
- 每条记录以
YYYY Mmm dd hh:mm:ss.ms开头,例如2019 Aug 31 09:17:36.550 - 每条记录都有一个标题,从上面的第 1 行开始,以空行结束
- 记录数据包含在
Interpreted PDU:下面的行中 - 感兴趣的记录是记录标题第一行有
0xB821 NR5G RRC OTA Packet -- RRC_RECONFIG的记录
是否可以将上面#3 以下的选定记录标题和文本提取为嵌套 json 数组,格式如下 - 为简洁起见,确实需要将整个文本数据作为 JSON。
data = [{"time": "2019 Aug 31 09:17:36.550", "PDU Number": "RRC_RECONFIG Message", "Physical Cell ID": 0, "rrc-TransactionIdentifier": 1, "criticalExtensions rrcReconfiguration": {"secondaryCellGroup": {"cellGroupId": 1, "rlc-BearerToAddModList": [{"logicalChannelIdentity": 1, "servedRadioBearer drb-Identity": 2, "rlc-Config am": {"ul-AM-RLC": {"sn-FieldLength": "size18", "t-PollRetransmit": "ms40", "pollPDU": "p32", "pollByte": "kB25", "maxRetxThreshold": "t32"}, "dl-AM-RLC": {"sn-FieldLength": "size18", "t-Reassembly": "ms40", "t-StatusProhibit": "ms20"}}}]}} }, next records data here]
请注意,输入文本是 3GPP 38.331 第 6.3.2 节中 ASN1 数据规范的解析输出。我不确定普通的 python 文本解析是处理这个问题的正确方法,还是应该使用 asn1tools library 之类的东西?如果是这样,使用此数据的示例会有所帮助。
【问题讨论】:
-
我相信你可以使用一些正则表达式,虽然它可能不是世界上最好的主意。
-
您链接的文件中的 ASN.1 数据采用文本表示形式。要使用 asn1tools 库,它必须支持该符号,而不是任何标准编码规则(BER、PER、OER、JER、XER)。我不知道它是否这样做,但我会感到惊讶。
-
这个问题非常详细,但不包括你自己解决它的尝试和遇到的困难:)
标签: python text-parsing asn.1