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

Python 如何从一个字符串生成多个变量,python,variables,Python,Variables,我有一个字符串,其中包含一些要存储的变量 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,fea

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

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
等等。
有没有办法做到这一点,因为每个
示例:number
都将成为一个存储了该数字的变量?也?我怎样才能为它编一本字典呢?

这里有一个基本的解析器:

对于名称,对于data.strip(“{}”).split(“,”)中的项,[item.split(“:”,maxslit=1)中的val:
globals()[name]=val
印刷品(特色)
如果要在函数中执行此操作。只需将
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)

但我想这不是您想要做的?

不要创建单独的变量。创建一个包含键值对的字典。是什么产生了这个字符串?当存在JSON等标准替代项时,使用设计糟糕的自定义格式没有任何意义。如果字符串不包含此处显示的换行符,则一行代码可能如下所示:“structure={item.split(':')[0]:item.split(':'),1)[1]用于数据[1:-1]中的项。split(',')}`(但是执行两次
split
并不是最漂亮的方法)。如果这是一种试图发明您自己的存储格式的尝试,请注意,存在一种非常类似的存储格式,Python可以对其进行开箱读写:。该格式要求您使用一些引号,它看起来像
data='{“name”:“itcamefrmars”,“id”:2110939,“score”:2088205,,“createdDate:“2019-03-13”,“createdTime:“21:38:39”,“lastPlayedClass:“Triggerman”}
您能否澄清您是否控制了数据,或者数据是否来自外部来源?请注意1)您并没有真正回答OP创建单个变量的请求(这很好)2)如果您需要编写自己的解析器,那么首先您就做错了……没关系,仅根据周围的
{}
,以及这是一些玩家数据的事实,我打赌下一步将有一个它们的列表
[{},{},…]
,然后你开始为一些被误解的JSONish…东西开发一个完整的解析器。我认为编写你自己的解析器是可以的,如果这些数据来自一个你无法控制的源。但我同意,如果你能控制数据格式,你肯定应该在这里使用类似Json的东西。