以下を効率的に行うためのワンライナーイディオムのヘルプに感謝します。
以下のように、中括弧で区切られたグループを持つ文字列があります。
{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'}
これは私がそれを行う方法です:
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}'
例のように文字列として保持します。