2016-08-20 3 views
1

Hallo, so wie dieser Moderator Namen aus einem einfachen Stück Code zu extrahieren Ich versuche:Benötigen Sie Hilfe bei Regex Strings aus JSON-String aus Text (Python) zu extrahieren

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

Ich habe zu versuchen, greifen Sie die Moderatoren mit \ "Moderatoren \": \ s * [(\ s * \ "\ w * \" \, ) \ s *] aber zu keinem Erfolg. Ich benutze Regex über Json Parsing meist für die Herausforderung.

+3

Sie haben JSON, die Sie analysieren können:

ich es zerbrach in zwei Regex Ausdrücke zur besseren Lesbarkeit und Leichtigkeit des Schreibens

NOW, die json-Modul verwenden, könnten Sie etwas viel einfacher machen. .. Warum Regex verwenden? –

+0

Mögliches Duplikat von [JSON in Python parsen] (http://stackoverflow.com/questions/7771011/parse-json-in-python) –

+0

Hallo @ cricket_007, es ist hauptsächlich für die Herausforderung & Praxis. – seiqooq

Antwort

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) 

Dies sollte

Die erste reguläre Ausdruck extrahiert alles zwischen zwei eckigen Klammern den Trick. Der zweite reguläre Ausdruck extrahiert die Zeichenfolge daraus.

import json 
a = json.loads(string) 
moderators = a['chatters']['moderators'] 
+0

Außerdem unterstützt das Re-Modul keine wiederholten Erfassungsgruppen. Es gibt also keinen einzigen, den Sie verwenden könnten, um die bestimmten Mitglieder von Moderatoren zu erhalten - außer Sie möchten eine Regex schreiben, in der Sie die Erfassungsgruppe für beliebig viele wiederholen Mitglieder, von denen Sie meinen, Moderator könnte das haben. Wenn Sie jetzt das Regex-Modul für Python 3.x nachschlagen, unterstützt es das Wiederholen von Erfassungsgruppen. – engineer14

Verwandte Themen