2017-04-18 6 views
2

Ich versuche, eine Zeichenfolge in Python zu analysieren und Parse von PyPi (https://pypi.python.org/pypi/parse) zu verwenden, um alle meine Analyse zu tun.Analysieren einer Parse-Format-Zeichenfolge in Python

Allerdings muss ich jetzt die Zeichenfolge analysieren, die die Parse-Bibliothek für das Parsing-Format verwendet.

Zum Beispiel der Zeichenfolge:

{time:ti}|{dogColor:w}|{dogAge:d}|{startaddress:w}| 

ich ein ähnliches Format bin mit (nicht über Hunde) eine Log-Datei zu analysieren. Allerdings möchte ich auch diese Zeichenfolge analysieren, um den Typ jedes einzelnen Elements zu finden (analysiere die Zeichenfolge, um nach der Zeit das 'ti' zu finden, um zu wissen, dass es ein Zeitobjekt ist, oder das w nach 'dogColor') weiß, dass es eine Zeichenkette ist)

Zuerst teile ich die Zeile mit dem '|' Charakter, was dazu führt:

{time:ti} 

Von hier habe ich auf jeder Seite des Dickdarms analysieren, möchten, und nicht die geschweiften Klammern enthalten. Ich habe dies versucht, ohne Erfolg:

result = parse('{{name}}:{type}', token) 

Ich denke, das Problem, das ich habe ist, dass die Parse-Bibliothek nicht geschweiften Klammern analysieren kann als dass ein spezielles Zeichen ist? Ich habe Escape-Zeichen ohne Erfolg wie folgt versucht:

result = parse("/{{name}/}:{type}", token) 

Irgendwelche Empfehlungen? Gibt es vielleicht einen besseren Weg, dies ohne die Parse Bibliothek zu tun?

Antwort

2

Doppel geschweiften Klammern ihnen zu entkommen:

>>> parse('{{{}:{}}}', '{time:ti}') 
<Result ('time', 'ti') {}> 
+0

Perfect! Ich wusste, dass ich in der Nähe sein musste. Ich danke dir sehr! –