python把字符串解析成字典

如何把下面的字段字符串存储成字典的样式?
比如我可以使用这样一个字典序列去查询,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格式的写法