【问题标题】:Parse an asymmetrical string解析不对称字符串
【发布时间】:2020-04-07 10:07:19
【问题描述】:

我正在尝试解析字符串:

'local:\n    ----------\n    instance_A:\n        ----------\n        release:\n            3-17-0\n    instance_B:\n        ----------\n        release:\n            3-16-0\n    log_level:\n        debug\n    primary_instance:\n        A\n'

变成这样的人

{"instance_A":"3-17-0","instance_B":"3-16-0"}

问题是破折号是“不对称的”,例如它们对于 instance_A 和 instance_B 是不同的,所以当我做这样的事情时:

"".join(a.split()).replace('----------','')[6:-33]

(由于 [6:-33],我认为这无论如何都不是一个好方法)我得到了

'instance_A:release:3-17-0instance_B:release:3-16-0'

如果在 3-17-0instance_B 之间有分隔符就好了

请建议一种pythonic 方法来解析该字符串,并评估当前方法。

【问题讨论】:

    标签: python python-3.x string parsing


    【解决方案1】:

    我是这样做的:

    v = "".join(a.split()).replace('----------','').replace('release:','')[6:-33]
    v = v[:17]+':'+v[17:]
    i = iter(v.split(':'))
    d = dict(zip(i,i))
    

    这行得通,即使它很丑陋。如果有人可以提供建议以使其更好看,将不胜感激

    【讨论】:

      猜你喜欢
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多