我有一个包含这种格式的行的文件.
Example 1:
nextline = "DD:MM:YYYY INFO - 'WeeklyMedal: Hole = 1; Par = 4; Index = 2; Distance = 459; score = { Player1 = 4 };"
Example 2:
nextline = "DD:MM:YYYY INFO - 'WeeklyMedal: Hole = 1; Par = 4; Index = 2; Distance = 459; score = { Player1 = 4; Player2 = 6; Player3 = 4 };"
我首先用’:’分割这一行,这给了我一个包含2个条目的列表.
我想将这一行拆分为带有键和值的字典,但是得分键有多个具有值的子键.
Hole 1
Par 4
Index 2
Distance 459
score
Player1 4
Player2 6
Player3 4
所以我使用的是这样的……
split_line_by_semicolon = nextline.split(":")
dictionary_of_line = dict((k.strip(),v.strip()) for k,v in (item.split('=')
for item in split_line_by_semicolon.split(';')))
for keys,values in dictionary_of_line.items():
print("{0} {1}".format(keys,values))
但是我在该行的得分元素上收到错误:
ValueError: too many values to unpack (expected 2)
我可以将’=’上的分割调整为此值,因此它会在第一个’=’后停止
dictionary_of_line = dict((k.strip(),v in (item.split('=',1)
for item in split_line_by_semicolon.split(';')))
for keys,values))
但是我丢失了大括号内的子值.有谁知道如何实现这个多层字典?