4

以下を効率的に行うためのワンライナーイディオムのヘルプに感謝します。

以下のように、中括弧で区切られたグループを持つ文字列があります。

{1:xxxx}{2:xxxx}{3:{10:xxxx}}{4:xxxx\r\n:xxxx}....  

これを辞書形式に変換するにはどうすればよいですか?

dict={1:'xxx',2:'xxxx',3:'{10:xxxx}'},4:'xxxx\r\n:xxxx'}  
4

2 に答える 2

0

これは私がそれを行う方法です:

raw = """{1:xxxx}{2:xxxx}{3:{10:xxxx}}{4:'xxxx\r\n:xxxx'}"""

def parse(raw):
    # split into chunks by '}{' and remove the outer '{}'
    parts = raw[1:-1].split('}{')
    for part in parts:
        # split by the first ':'
        num, data = part.split(':', 1)
        # yield each entry found
        yield int(num), data

# make a dict from it
print dict(parse(raw))

'{10:xxxx}'例のように文字列として保持します。

于 2013-05-03T10:27:08.833 に答える