Я использую регулярное выражение для получения данных, которые мне нужны для выполнения некоторых операций сравнения. Я получаю сообщение от https://play.pokemonshowdown.com/data/pokedex.js?fe67f5ac, где есть список всех возможных покемонов. Я использую регулярное выражение для разделения покемонов на отдельные уровни, например:
LC = (re.findall(r'name:(.+?)tier:"LC"\}',data))
, а затем собираю данные следующим образом:
self.LC = s.join(LC)
self.names = (re.findall(r'name:"(.+?)"', self.LC))
self.stats = (re.findall(r'baseStats:{(.+?)}', self.LC))
self.types = (re.findall(r'types:\[(.+?)]', self.LC))
К сожалению, когда я использую первую строку кода он собирает почти всех покемонов в этом списке, создавая чрезвычайно неэффективную и бесполезную строку. Любая помощь, как это исправить, будет принята с благодарностью.
прямо сейчас это то, что я получаю, когда печатаю первый элемент в списке:
"Bulbasaur",types:["Grass","Poison"],genderRatio:
{M:0.875,F:0.125},baseStats:
{hp:45,atk:49,def:49,spa:65,spd:65,spe:45},abilities
{"0":"Overgrow",H:"Chlorophyll"},heightm:0.7,weightkg:6.9,color:"Green",evos:["Ivysaur"],eggGroups:["Monster","Grass"],tier:"LC"},ivysaur:{num:2,name:"Ivysaur",types:["Grass","Poison"],..........
Что я хотел бы:
"Bulbasaur",types:["Grass","Poison"],genderRatio:
{M:0.875,F:0.125},baseStats:
{hp:45,atk:49,def:49,spa:65,spd:65,spe:45},abilities:
{"0":"Overgrow",H:"Chlorophyll"},heightm:0.7,weightkg:6.9,color:"Green",evos:
["Ivysaur"],eggGroups:["Monster","Grass"],
где Строка заканчивается прямо перед тем уровнем, на который я смотрю, в данном случае L C.