привет, я использую данные из API, который выходит в этом формате (пример охватывает большое количество строк, в данном примере показано только 2)
['347759', '98', '50752599']
['426291', '84', '3092962']
каждая строка представляет различные навыки в игре, и каждая часть данных в строке представляет ранг игроков в этом навыке, их уровень в этом навыке и их общий опыт в этом навыке, например, если первый навык - добыча полезных ископаемых, а второй навык - кузнечное дело, отформатированные данные будут иметь вид
Mining : rank=347759 , level = 98 , xp = 50752599
Smithing : rank=426291, level = 84, xp = 3092962
я использую HTTP-запросы для получения этих данных, и он занимает много строк, в настоящее время я использую этот код (см. Ниже) для разделения данных на отдельные целые числа в каждой строке
line_count = 0
for line in data_processed:
if line != '':
skill_data = line.split(',')
player.mining.rank = skill_data[0]
player.mining.level = skill_data[1]
player.mining.xp = skill_data[2]
line_count = line_count + 1
очевидно, проблема в том, что когда он переходит на следующую строку в файле (второе трио целых чисел) вместо player.mining.rank = skill_data[0]
et c, мне вместо этого потребуется player.smithing.rank = skill_data[0]
и так далее для 24 разных строк (так как есть 24 различные навыки в игре).
как мне динамически переключаться с добавления одного объекта класса, такого как «добыча полезных ископаемых» (Производный от ' Skills 'и объявлен в объекте' Player ') в другой объект класса, например' smithing '
любые предложения приветствуются - прокомментируйте, если вам нужно больше объяснений или контекста - я быстро отвечу
Я знаю, что могу использовать это (см. Ниже), но проблема в том, что у меня есть несколько игроков, вызывающих из нескольких HTTP-запросов, поэтому он будет охватывать сотни и сотни строк кода, очень похожих с одним объектом разные имена
if line_count == 1: player.mining.rank = skill_data[0]
и if line_count == 2: player.smithing.rank = skill_data[0]
объявления классов
для каждого игрока объектом является имя его персонажа, например Conial = Player(...)