2016-12-29 1 views
0

Ich habe eine Zeichenfolge wie diese und ich muss Werte daraus extrahieren.extrahiere jeden Wert in Python

process({ "www.google.com": { "target": "google.com", "0": [ 94, 71 ], "1": [ 94, 71 ], "2": [ 94, 71 ], "4": [ 93, 67 ], "categories": { "501": 99, "301": 47, "304": 5 } } }) 

ich die Werte wie "0": [94, 71], "categories": { "501": 99, "301": 47, "304": 5 } usw.

+0

willkommen zu Stackoverflow! Bitte lesen Sie [wie Sie eine Frage stellen] (https://stackoverflow.com/help/asking) und geben Sie ein [minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) , die Ihr Problem reproduziert. –

+0

Post, was Sie bisher versucht haben? –

+0

'['www.googl.com'] ['0']' und '['www.google.com'] ['categories']' usw. – furas

Antwort

0

Sie können versuchen, so etwas wie den Zugriff wollte:

import re 
import ast 

a = """process({ "www.google.com": { "target": "google.com", "0": [ 94, 71 ], "1": [ 94, 71 ], "2": [ 94, 71 ], "4": [ 93, 67 ], "categories": { "501": 99, "301": 47, "304": 5 } } }) 
""" 

d = ast.literal_eval(re.findall(r'{.*}', a)[0]) 
print d, '\n' 
print d['www.google.com']['0'], '\n' 
print d['www.google.com']['categories'] 

Ausgang:

{'www.google.com': {'target': 'google.com', '1': [94, 71], '0': [94, 71], '2': [94, 71], '4': [93, 67], 'categories': {'301': 47, '304': 5, '501': 99}}} 

[94, 71] 

{'301': 47, '304': 5, '501': 99} 
+0

Sie können gehen Sie einen Schritt weiter mit 'ast.literal_eval (ast.parse (a) .body [0] .value.args [0])'. – bereal

+0

@bereal Wie in jedem der Schritte, was intern passiert passiert? – MYGz

+0

Just sezieren Sie es zwischen Punkten, wie 'ast.parse (a) .body' ist eine Liste von' _ast.Expr' usw. – bereal

Verwandte Themen