Как разбить на группы строку?

Есть строки в виде:
2020.08.31-14.15.33: {"P1":{"Location1":{"X": 266225.40625,"Y": 501808.46875,"Z": 21883.58984375},"CLocation1":{"X": 266225.40625,"Y": 501808.46875,"Z": 21883.58984375},"Event": false,"ProfileName": "Player","UserId": "76561198968409999","HasImmortality": false},"P2":{"Location2":{"X": 265164.625,"Y": 499088.78125,"Z": 22396.548828125},"CLocation2":{"X": 265164.21875,"Y": 499089,"Z": 22396.548828125},"Event": false,"ProfileName": "player2","UserId": "76561197996445700"},"Weapon": "AKM","TimeOfDay": "15:17:20"}

Каким образом можно разбить строку на группы, чтобы извлечь данные?
Выходные данные:
P1 Player (76561198968409999)
P2 player2 (76561197996445700)
Подскажите пожалуйста.
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@gimntut
Судя по всему тут время + json. Значит код будет выглядеть так:
import json
# ... тут помещаем нашу строку в переменную s, например в цикле.
s = '2020.08.31-14.15.33: {"P1":{"Location1":{"X": 266225.40625,"Y": 501808.46875,"Z": 21883.58984375},"CLocation1":{"X": 266225.40625,"Y": 501808.46875,"Z": 21883.58984375},"Event": false,"ProfileName": "Player","UserId": "76561198968409999","HasImmortality": false},"P2":{"Location2":{"X": 265164.625,"Y": 499088.78125,"Z": 22396.548828125},"CLocation2":{"X": 265164.21875,"Y": 499089,"Z": 22396.548828125},"Event": false,"ProfileName": "player2","UserId": "76561197996445700"},"Weapon": "AKM","TimeOfDay": "15:17:20"}'
# теперь извлекаем 
players = json.loads(s.split(':', 1)[1].strip())
for index in ('P1', 'P2'):
    player = players[index]
    profile_name = players[index]['ProfileName']
    user_id=players[index]["UserId"]
    print(f'{index} {profile_name} ({user_id})')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Arlidi
@Arlidi
Это не строка а словарь прочитайте как работать со словарем в pythonworld там показывают как брать данные из словаря

И если не секрет можете сказать откуда эти данные?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы