Получение указанной строки c из очень длинной строки - PullRequest
0 голосов
/ 04 мая 2020

Я использую регулярное выражение для получения данных, которые мне нужны для выполнения некоторых операций сравнения. Я получаю сообщение от 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.

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