Как сделать несколько переменных из одной строки - PullRequest
0 голосов
/ 24 марта 2020

У меня есть строка, содержащая несколько переменных, которые я хотел бы сохранить.

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 станет переменной с сохраненным номером? Также? Как я могу сделать словарь для этого?

Ответы [ 2 ]

1 голос
/ 24 марта 2020

Вот основной c парсер:

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)
0 голосов
/ 24 марта 2020

Почему бы вам не сделать его похожим на словарь, подобный этому

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

Таким образом, вы можете получить каждое значение на основе его ключа.

data["id"] will be 2110939

И если вы хотите напечатать все они, вы могли бы написать

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

Но я думаю, это не то, что вы хотели сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...