如何把下面的字段字符串存储成字典的样式?
比如我可以使用这样一个字典序列去查询,mydict['Service_Nas']['QmiNasSetEventReport']['QmiNasSetEventReportReqTlvs[0]']['SignalStrengthTlv']['NumSignalStrengthThresholds']=2
2017 Dec 20 09:40:06.909 [F7] 0x1390 QMI Link 2 RX PDU
IFType = 1
QmiLength = 19
QmiCtlFlags = 0
QmiType = NAS
Service_Nas {
ClientId = 3
SduCtlFlags = REQ
TxId = 177
MsgType = QMI_NAS_SET_EVENT_REPORT_MSG
MsgLength = 7
QmiNasSetEventReport {
QmiNasSetEventReportReqTlvs[0] {
Type = 16
Length = 4
SignalStrengthTlv {
ReportSignalStrength = REPORT
NumSignalStrengthThresholds = 2
SignalStrengthThresholds = { -75, -55 }
}
}
}
}
写脚本去解析这个字符串,按照期望的格式存储呀
看上去层次是要用大括号来区分层次。一层层遍历创建
这就是一种类似Json的格式,你可能需要学一点编译原理的知识,把等号左边的字符串存储为键,等号右边的字符串存储为值
a = {}
b = a.setdefault(c, {})
这就实现了字典的嵌套,这个问题比较麻烦的是处理字符串得到字典的键值,大概的方法就是判断花括号前边的值,如果为等号,则将花括号里边的
字符串作为一个值,对应的键值为等号前边的值;如果花括号前边的值不是等号,则将花括号前边换行符(或分号)后边的这一段字符串作为字典的
键值,对应的值先定义为一个空字典等。大意就是这样。
这不就是解析配置文件吗。。。参考https://github.com/cacois/python-configparser-examples
实在不行照着configparser改改库文件自己重新写一个适合你自己的配置文件的就ok了。
可以利用json来做,通过python获取到json格式的字符串后,可以通过eval函数转换成dict格式
感觉yaml解析是比较好的方式。详情可以参考yaml格式的写法