【发布时间】:2013-01-21 14:38:42
【问题描述】:
我有一个字符串,看起来类似于以下内容:
myString = "major: 11, minor: 31, name: A=1,B=1,C=1,P=1, severity: 0, comment: this is down"
到目前为止我已经尝试过了:
dict(elem.split(':') for elem in myString.split(','))
它工作正常,直到它捕获上面不能是split() 和':' 的名称元素。
我希望将这些格式的元素作为新字典,例如
myDic = {'major':'11', 'minor': '31', 'name':{'A':'1', 'B':'1', 'C':'1', 'P', '1'}, 'severity': '0', 'comment': 'this is down'}
如果可能的话,我想避免复杂的解析,因为这些结果很难维护。 我也不知道上面字符串中键或值的名称/数量。我只知道格式。这不是 JSON 响应,这是文件中文本的一部分,我无法控制当前格式。
【问题讨论】:
-
您需要针对该格式的自定义解析器;
name值中的,与字符串中的其他逗号冲突。 -
它看起来肯定不像json,但如果你对格式有任何控制,我确实建议使用json。
-
@TomaszŁazarowicz 你说得对,我在看字典:/
-
@TomaszŁazarowicz,这确实不是 JSON,不幸的是我无法控制格式。
-
我建议你要么得到一个你想要解析的语言的正式规范(语法糖不会那么容易),要么你切换到似乎具有相同表达能力的 JSON,而提供强大、稳健、轻量级的工具支持。
标签: python parsing dictionary