Нужна помощь с использованием регулярных выражений для извлечения строк из строки JSON из текста (Python)

python json regex

642 просмотра

1 ответ

Привет, поэтому я пытаюсь извлечь имена модераторов из простого куска кода:

{
  "_links": {},
  "chatter_count": 2,
  "chatters": {
    "moderators": [
      "nightbot",
      "vivbot"
    ],
    "staff": [],
    "admins": [],
    "global_mods": [],
    "viewers": []
  }
}

Я пытался захватить модераторов с помощью \ "moderators \": \ s * [(\ s * \ "\ w * \" \, ) \ s *], но безуспешно. Я использую регулярное выражение для анализа JSON в основном для вызова.

Автор: seiqooq Источник Размещён: 08.11.2019 11:23

Ответы (1)


1 плюс

moderators = list()
first = re.compile(r'moderators.*?\[([^\]]*)', re.I)
second = re.compile(r'"(.*?)"')

strings = first.findall(string)
for strings2 in strings:
  moderators = moderators + second.findall(strings2)

Это должно сделать свое дело

Первое регулярное выражение извлекает все между 2 квадратными скобками. Второе регулярное выражение извлекает строку из него.

Я разбил его на 2 выражения регулярных выражений для удобства чтения и простоты написания

ТЕПЕРЬ, используя модуль json, вы можете сделать что-то намного проще:

import json
a = json.loads(string)
moderators = a['chatters']['moderators']
Автор: engineer14 Размещён: 20.08.2016 02:55
Вопросы из категории :
32x32