python多层级的字典访问键值_python – 将一行分成具有多层键值对的字典

我有一个包含这种格式的行的文件.

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))

但是我丢失了大括号内的子值.有谁知道如何实现这个多层字典?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值