在这个link中给出的文本中,需要提取以下数据
是否可以将上面ා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]
注意,输入文本是在3GPP38.331第6.3.2节中解析ASN1数据规范的输出。我不确定普通的python文本解析是正确的方法来处理这个问题,还是应该使用asn1tools库之类的方法?如果是这样,那么对该数据的示例使用将很有帮助。
假设您有输入数据的文本表示,您可以看看parse库。这允许您在字符串中查找模式并将内容分配给变量。在
以下是提取时间、PDU编号和物理单元ID数据字段的示例:
由于您有一个相当复杂的结构和大量的数据字段,这可能会变得有点麻烦,但我个人更喜欢这种方法而不是正则表达式。也许还有一种更聪明的方法来解析日期(不幸的是,它似乎没有库支持的标准格式之一)。在
不幸的是,不太可能有人直接回答您的问题(这与How to extract data from asn1 data file and load it into a dataframe?非常相似)
链接的文本显然是一个日志文件,其中使用了ASN.1值表示法使消息可读。因此,尝试从文本形式解码这些消息是不寻常的,您可能找不到相应的工具。在
理论上,一般的方法是:
正如你所见,这是一个很长的机会(如果这个解释太短或不清楚,我可以扩展)
除非您的任务是重复的和/或消息的数量很大,否则请尝试您已经知道的方法(手动搜索,regex)来搜索日志文件。在
如果你想知道创建ASN.1工具需要什么,你可以找到一些(不是那么多,因为ASN.1并不特别年轻和流行)。签出https://github.com/etingof/pyasn1(python)
我在Java中创建了自己的,并添加了ASN.1值解码器来说明我的答案:https://github.com/yafred/asn1-tool(分支文本ASN值支持)
相关问题 更多 >
编程相关推荐