如何从一个字符串生成多个变量

2024-04-29 21:07:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串,其中包含一些要存储的变量

data = '{name:ItCameFr0mmars,id:2110939,score:2088205,level:43,l
evelProgress:35,kills:18412,deaths:6821,kdr:2.70,kpg:12.03,spk:
113.42,totalGamesPlayed:1530,wins:913,loses:617,wl:0.60,playTim
e:2d 15h 1m,funds:2265,clan:TyDE,featured:No,hacker:false,follo
wing:0,followers:3,shots:117902,hits:38132,nukes:6,meleeKills:3
77,createdDate:2019-03-13,createdTime:21:38:39,lastPlayedClass:
Triggerman}'

我想为每一位数据分配一个变量。例如:

level = 43
kills = 18412

等等。 有没有办法做到这一点,因为每个example: number都将成为一个存储了该数字的变量?而且我怎样才能为它编一本字典


Tags: 字符串nameiddataspklevelscorewins
2条回答

下面是一个基本的解析器:

for name, val in [item.split(':', maxsplit=1) for item in data.strip("{}").split(",")]:  
    globals()[name] = val

print(featured)

如果要在函数中执行此操作。只需将globals替换为locals

通常最好将其放入对象中:

class Data(): 
     def __init__(self, data): 
         for name, val in [item.split(':', maxsplit=1) for item in data.strip("{}").split(",")]: 
             setattr(self, name, val)

obj = Data(data)
print(obj.featured)

你为什么不把它做成这样一本字典呢

data = {"name":"ItCameFr0mmars","id":2110939,"score":2088205}

因此,您可以根据其键获取每个值

data["id"] will be 2110939

如果你想把它们都打印出来,你可以写

 for key,value in data.items():
     print(key,":",value)

但我猜这不是你想做的

相关问题 更多 >